如何在通过Ajax提交PartialView's数据时将用户重定向到新页面(视图),并且在处理Ajax请求时出现

How to Redirect a User to new Page(View) while submitting PartialView's data through Ajax and there is an error while processing the Ajax request

本文关键字:Ajax 视图 新页面 请求 处理 重定向 提交 PartialView 数据 用户      更新时间:2023-09-26

我正在工作一个小MVC应用程序。并有一个屏幕(视图),其中有三个部分视图和每个部分视图各一些文本框和按钮。我使用Ajax将每个部分视图信息提交给服务器。

==================部分视图1======

Submit on a Button点击

@using (Ajax.BeginForm("action1", "contoller1", FormMethod.Post, new AjaxOptions() 
     { 
         OnFailure= "OnFailure()", 
     }
))

==================部分视图2=======

Submit on a Button点击

@using (Ajax.BeginForm("action2", "contoller2", FormMethod.Post, new AjaxOptions() 
     { 
         OnFailure= "OnFailure()", 
     }
))

==================部分视图3=======

Submit on a Button点击

@using (Ajax.BeginForm("action3", "contoller3", FormMethod.Post, new AjaxOptions() 
     { 
         OnFailure= "OnFailure()", 
     }
))

==========================================

事件OnFailure()在Javascript文件中处理

function OnFailure()
{
    Window.location.href="/Error/Index/-1"   
}

(请忽略语法,我在不同的机器上有代码)

要求:如果在服务器端处理任何Partialview(1/2/3)数据时出现任何错误,请单击按钮。我们应该把用户重定向到一个全新的友好的错误页面。

我做了什么:
onFailure事件/Ajax.BeginReques函数t,我使用上述代码重定向到错误控制器的索引视图。

/错误/指数显示

"处理您的请求时出错,请再试一次或联系管理部门…"

实际输出:

如果提交PartialView2数据有错误。partialView中的错误信息显示如下:

=================部分视图1=======

==================部分视图2=======

"处理您的请求时出错,请再试一次或联系管理部门…"==================部分视图3=======

期望输出:

然后用户应该被重定向到一个完全不同的页面,如果有任何错误,而通过ajax处理任何partialView

* *——错误'索引1

处理您的请求时出现错误,请再试一次或联系管理部门。

* *

这可能是由于将代码添加到问题中而导致的错别字,但如果没有,这肯定是一个问题。在OnFailure函数中,您使用:

重定向
Windows.location.href="/Error/Index/-1"

JS对象名称是window,而不是Windows,或者你可以完全省略它,即:

location.href="/Error/Index/-1"