asp.net-mvc – Ajax重定向到页面而不是更新目标
发布时间:2020-09-01 14:28:51 所属栏目:asp.Net 来源:互联网
导读:我正在使用部分视图进行登录,并希望在成功时将用户重定向到新页面,如果模型无效,则在部分视图中显示验证错误. ajax目标正在更新并成功或失败.如果模型有效,它将在更新目标中显示整个新页面,但我希望它重定向到新页面.我已经尝试过Redirect和RedirecttoAction,
我正在使用部分视图进行登录,并希望在成功时将用户重定向到新页面,如果模型无效,则在部分视图中显示验证错误. ajax目标正在更新并成功或失败.如果模型有效,它将在更新目标中显示整个新页面,但我希望它重定向到新页面.我已经尝试过Redirect和RedirecttoAction,但它没有获得所需的结果.任何有关我可以去的想法都会获得ajax更新以重定向到新页面,而不是更新目标.另外,如果我使用错误的方法,请告诉我. 部分查看代码: <% using (Ajax.BeginForm( "LogOn",null,new AjaxOptions { HttpMethod = "POST",UpdateTargetId = "SignInForm" },new { id = "SignInForm",ReturnUrl = Request.QueryString["ReturnUrl"] })) { %> <<Page HTML Controls>> <input type="submit" value="Log On" /> <% } %> 这是相关的控制器代码: public ActionResult Logon(LogOnModel model,string returnUrl) { if (ModelState.IsValid) { //Login Logic Code if (!String.IsNullOrEmpty(returnUrl)) { return Redirect(returnUrl); } else { return RedirectToAction("Index","App"); } } // If we got this far,something failed,redisplay form if (Request.IsAjaxRequest()) return PartialView("LogOnControl"); return View(model); } 解决方法要执行重定向,您需要在客户端执行此操作.因此,您不能再使用UpdateTargetId,而应使用OnSuccess选项.您还需要修改Logon控制器操作,以便在重定向的情况下测试它是否是ajax请求,并且在这种情况下返回一个带有重定向url的Json对象,该对象将在javascript中使用:if (ModelState.IsValid) { if (string.IsNullOrEmpty(returnUrl)) { returnUrl = Url.Action("Index","App"); } if (Request.IsAjaxRequest()) { return Json(new { returnUrl = returnUrl }); } return Redirect(returnUrl); } 在视图中: <% using (Ajax.BeginForm( "LogOn",new AjaxOptions { HttpMethod = "POST",OnSuccess = "success" },new { id = "SignInForm",ReturnUrl = Request.QueryString["ReturnUrl"] })) { %> <<Page HTML Controls>> <input type="submit" value="Log On" /> <% } %> <script type="text/javascript"> function success(context) { var returnUrl = context.get_data().returnUrl; if (returnUrl) { window.location.href = returnUrl; } else { // TODO: update the target form element with the returned partial html } } </script> (编辑:哈尔滨站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – ASP.NET捆绑/分类:包括动态生成的Javascri
- asp.net-mvc-3 – ASP.Net MVC 3:在哪里处理会话丢失?
- Asp.Net MVC路由表和控制器操作
- asp.net-mvc – 使用AD的ASP.NET MVC表单Auth在本地工作但在
- asp.net – 哪里是.ASPXAUTH cookie
- ASP.NET 程序中删除文件夹导致session失效问题的解决办法分
- asp.net-mvc – 允许asp.net mvc 2控制器名称的URL中的连字
- asp.net-mvc – MVC错误 – 传入字典的模型项目的类型为“S
- asp.net – @ Url.Action在控制器中创建空值的参数之间添加
- asp.net-mvc – asp.net MVC应该是View-Model封装域模型吗?
推荐文章
站长推荐
- asp.net – 是否可以根据用户角色隐藏/显示Kendo
- asp.net – IE10中的LinkButtons不执行回发
- asp.net-mvc – 从基本控制器继承LINQ-to-SQL数据
- LoginView中的ASP.NET LoginStatus不会触发Loggi
- 在asp.net c#应用程序中使用Graphviz Dll
- asp.net – Ajax上的Identity Server 3 – 401而
- asp.net-mvc – ASP.NET MVC:Action中的授权 –
- asp.net-mvc – 从ASP.NET Web API返回一些字段
- ASP.NET设计网络硬盘之删除文件夹实现代码
- VS 2013 RC中缺少ASP.NET Web窗体脚手架功能
热点阅读