asp.net-mvc – Ajax重定向到页面而不是更新目标
发布时间:2020-09-01 14:29:31 所属栏目: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自带对象JSON字符串与实体类的转换
- asp.net-mvc – 如何在ASP.NET MVC中传递页面的元标记?
- asp.net-mvc – 如何忽略ASP.NET MVC 4中特定View文件夹或特
- asp.net(C#)禁止缓存文件不让文件缓存到客户端
- asp.net-mvc-3 – 如何在ASP.NET MVC中创建递归结构
- asp.net文件上传示例分享
- asp.net – $(“#dialog”).parent().appendTo($(“form:f
- asp-classic – 如何使用AES在VBScript中进行加密?
- asp.net – 在客户端启用/禁用RequiredValidator /不启动Cu
- asp.net-mvc – 为什么在ASP.NET MVC中使用lambdas而不是反
推荐文章
站长推荐
- ASP.NET MVC Web应用程序中视图逻辑和域逻辑之间
- asp.net-mvc – 从MVC版本1迁移后,ASP.NET MVC 2
- asp.net-mvc – 如何将ASP.Net MVC路径段中的1或
- asp.net-mvc – TempData在第二个请求后不会被破
- ASP.NET VNext类库System.Runtime.Serialization
- asp.net-mvc – ASP.net身份在删除外部帐户后停止
- ASP.NET虚拟路径映射到另一个不允许的应用程序
- ASP.NET如何确定是否排队请求?
- asp.net-mvc – 从页面到局部视图的asp.net mvc参
- asp.net-mvc – 文件上传MVC
热点阅读
