asp.net-mvc – ASP.NET MVC – 如何从不同的控制器维护ModelState?
发布时间:2020-05-23 09:28:18 所属栏目:asp.Net 来源:互联网
导读:我有一个HomeController与索引操作显示Index.aspx视图.它有一个用户名/密码登录部分.当用户单击提交按钮时,它会发送到AccountController中的登录操作. % Html.BeginForm(Login, Account, FormMethod.Post); % 在该操作中,它测试用户名/密码有效性,如果无效,则
|
我有一个HomeController与索引操作显示Index.aspx视图.它有一个用户名/密码登录部分.当用户单击提交按钮时,它会发送到AccountController中的登录操作. <% Html.BeginForm("Login","Account",FormMethod.Post); %>
在该操作中,它测试用户名/密码有效性,如果无效,则将用户发回到登录页面,并显示凭证不正确的消息. [HttpPost]
public ActionResult Login(LoginViewModel Model,string ReturnUrl)
{
User user = MembershipService.ValidateUser(Model.UserName,Model.Password);
if (user != null)
{
//Detail removed here
FormsService.SignIn(user.ToString(),Model.RememberMe);
return Redirect(ReturnUrl);
}
else
{
ModelState.AddModelError("","The user name or password provided is incorrect.");
}
// If we got this far,something failed,redisplay form
return RedirectToAction("Index","Home"); // <-- Here is the problem. ModelState is lost.
}
但是这里的问题是:ValidationSummary总是空白的,因为我们在RedirectToAction中失去了Model. 所以问题是:如何在没有重定向的情况下将用户发送到不同控制器上的操作? 解决方法正如其他人所说,如果验证失败,返回视图是常见的,但是您正在从您的帐户控制器调用,您将需要指定视图的完整路径return View("~/Views/Home/Index.aspx",model);
要么 如果登录失败,还有一个单独的登录页面并重定向到该页面.两个页面都将提交相同的登录操作. Facebook以此为例. 要么 当您只想显示错误消息 return RedirectToAction("Index","Home",new { LoginAttempts = 1 });
然后在索引操作中读取LoginAttempts参数,并选择相应地显示错误消息. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-core – ASP.NET 5中RegisterObject / QueueBackgr
- asp.net – .NET 4.0 ObjectCache的线程安全和范围管理
- asp.net-mvc – Ninject和连接字符串
- asp.net-mvc – 在路由路径中公开属于MVC应用程序中的区域的
- asp.net-mvc – ASP.NET MVC会话状态
- asp.net实现生成缩略图及给原始图加水印的方法示例
- asp.net – 访问asp:从代码背后的内容
- .net中如何获取机器硬件信息(防软件复制版)
- asp.net-mvc-3 – 如何添加整数列表到路由
- asp.net – 记录网页的加载时间
推荐文章
站长推荐
- asp.net-mvc – 使用JSON结果填充下拉列表 – 使
- asp.net-mvc – SSL安全SaaS应用程序的URL设计
- ASP.NET page_init事件?
- ASP.NET身份Windows身份验证(混合模式 – 表单Wi
- asp.net – 需要安装Dnx Runtime软件包 有关详细
- asp.net – 什么时候在普通的HTML上使用runat =“
- 即使控件被隐藏,ASP.NET中的验证仍然会激活吗?
- 为什么MVC而不是好的旧ASP.NET?还没有抓住为什么
- 在ASP.Net应用程序中执行Server.MapPath的最有效
- asp.net – Ajax.ActionLink不工作,Response.IsA
热点阅读
