【问题标题】:MVC Partial view update and Error redirectionMVC 部分视图更新和错误重定向
【发布时间】:2013-10-29 01:20:40
【问题描述】:
$.ajax({
    type: "POST",
    url: "Sample/Test",
    dataType: "html",
    async: false,
    success: function (resp) {
    }
})

我正在对控制器进行 Ajax 调用,我的控制器返回部分视图 (ActionResult),然后我更新页面中特定 div 的 HTML。看起来不错。

如果控制器中发生任何错误,它会返回一个错误页面,该页面返回到 Ajax Success。

我这里有两个问题

  1. 在直截了当的情况下,错误页面设置在部分 Div 中
  2. 在某些情况下,我会动态查找 div id,然后单独更新该部分。由于错误页面是 div 未定义,因此没有任何反应。

如何让它重定向到错误页面,而不是在出现错误时部分更新。

即使我尝试使用 try catch 在 Catch 中返回视图而不是部分视图。但这没有用。

我也尝试从下面的代码重定向

protected void Application_Error(object sender, EventArgs e)
{
    Response.Redirect("~/Error/Error");
}

这也将错误页面返回到 ajax 成功。

由于我的应用程序中有多个 ajax 调用,因此重定向到完整错误页面的最佳方法是什么?

我遇到的其他方法是在成功中找到文本并在那里重定向。这是一个好方法吗?

任何实现这种方式的常用方法,因为我在多个地方都有 ajax 调用。

谢谢

【问题讨论】:

    标签: jquery asp.net-mvc


    【解决方案1】:

    如果发生任何错误,则使用 If 条件检查数据库值,然后返回查看,否则返回部分视图。

    【讨论】:

    • 你试过了吗?那没有用。它仍然部分更新。我在我的问题中提到了
    • return RedirectToAction("Error", "Error");试试这个
    【解决方案2】:

    如果您的 AJAX 正在调用更新局部视图的控制器方法,那么它需要如下所示:

    public PartialViewResult Test(string myVar)
    {
        return PartialView("_MyPartialView", MyViewModel);
    }
    

    然后您需要获取 ajax 来更新您的部分视图包含的 div:

    function UpdateTest() {
        $.ajax({
            url: '/Sample/Test',
            type: 'GET',
            data: { myVar: "@Model.MyVar" },
            success: function (result) {
                $("#partial-div").html(result);
            }
        });
    }
    

    【讨论】:

    • 是的,完全没问题!我的问题是出现错误。我在我的问题中提到了这一点
    • 对不起,我完全误解了这个问题。您可以使用 JavaScriptResult 从 AJAX 请求重定向到页面: "public JavaScriptResult ErrorPage() { return JavaScript("window.location = 'Error/'"); }"
    【解决方案3】:
    public ActionResult Index()
    {
       try
         {
         }
       catch(Exception e)
       { 
        //handle error
        return new HttpStatusCodeResult(500);
       }    
    return 
    }
    
    
    function UpdateTest() {
        $.ajax({
            url: '/Sample/Test',
            type: 'GET',
            data: { myVar: "@Model.MyVar" },
            success: function (result) {
                $("#partial-div").html(result);
            },
    error: function() {
           document.location.href = '/error'; 
        }       
        });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多