首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Ajax.BeginForm导致重定向到局部视图,而不是就地

首先,我们需要了解Ajax.BeginForm是ASP.NET MVC中的一个帮助器方法,用于在客户端和服务器之间进行异步通信。当使用Ajax.BeginForm时,通常会遇到重定向到局部视图的情况。这是因为Ajax.BeginForm会将请求发送到服务器,并将响应作为局部视图返回,而不是将整个页面重新加载。

要解决这个问题,可以尝试以下方法:

  1. 使用JavaScript或jQuery来处理Ajax请求的响应。在Ajax.BeginForm中,可以使用OnSuccess或OnFailure属性来指定一个JavaScript函数,该函数将在Ajax请求成功或失败时执行。在这个函数中,可以使用JavaScript或jQuery来更新局部视图,而不是重定向到整个页面。
  2. 如果需要重定向到整个页面,可以使用Html.BeginForm或Url.Action方法,而不是Ajax.BeginForm。这将导致整个页面重新加载,而不是仅更新局部视图。
  3. 如果需要在Ajax请求成功后重定向到另一个页面,可以在Ajax.BeginForm的OnSuccess属性中指定一个JavaScript函数,该函数将使用window.location.href属性来更改浏览器的地址栏,从而导致页面重定向。

总之,Ajax.BeginForm的目的是在客户端和服务器之间进行异步通信,并将响应作为局部视图返回。如果需要重定向到整个页面,可以使用Html.BeginForm或Url.Action方法,或者在Ajax请求成功后使用JavaScript或jQuery来更改浏览器的地址栏。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

[ASP.NET MVC] 利用动态注入HTML的方式来设计复杂页面

随着最终用户对用户体验需求的不断提高,实际上我们很多情况下已经在按照桌面应用的标准来设计Web应用,甚至很多Web页面本身就体现为一个单一的页面。对于这种复杂的页面,我们在设计的时候不可以真的将所有涉及的元素通通至于某个单独的View中,将复杂页面相对独立的内容“分而治之”才是设计之道。我们可以借鉴Smart Clent应用的设计方式:将一个Windows Form作为应用的容器(Smart Client Shell),在操作过程中动态地激活相应的用户控件(Smart Part)并加载到容器中。对于一个复杂页面来说,我们也只需要将其设计成一个容器,至于运行过程中动态显示的内容则可以通过Ajax调用获取相应的HTML来填充。[源代码从这里下载]

02
  • 领券