【发布时间】:2016-09-17 13:45:04
【问题描述】:
我打开登录表单作为弹出窗口,并将 Ajax.beginform 放入登录过程中,如下所示。
@using (Ajax.BeginForm("Login", "Home", null, new AjaxOptions { OnSuccess = "OnSuccess", HttpMethod = "POST" },
new { id = "Logonform", returnUrl = ViewBag.ReturnUrl }))
{
....
}
现在,当我登录时,我必须重定向到当前页面,无论是“家或关于我们”之类的内容。就像如果我从关于我们页面打开弹出窗口,那么它会重定向到关于我们页面。
我的控制器如下:
[HttpPost]
public ActionResult Login(LoginModel LM, string returnUrl)
{
if (ModelState.IsValid)
{
FormsAuthentication.SetAuthCookie(LM.UserName, false);
if (!string.IsNullOrEmpty(returnUrl))
return Json(new { returnUrl = returnUrl });
return RedirectToAction("Index", "Home");
}
else
{
ModelState.AddModelError("UnSucessful", "User Name or Password is incorrect.");
}
return View(LM);
}
但是每次我没有得到返回 URL 并且它进入“主页”页面。
所以请告诉我如何处理它。
【问题讨论】:
-
你使用 ajax。 Ajax 永远不会重定向到另一个页面。
-
那么它将如何根据我的方案进行管理。
-
ajax 的全部意义在于保持在同一页面上。如果你想重定向,那么只需使用普通的
@Html.BeginForm() -
您的代码(控制器)在某处缺少
{。
标签: c# asp.net ajax asp.net-mvc asp.net-mvc-4