Asp.net mvc 返回ModelState而不是view
我有一个基本的登录方法,我检查数据库中是否存在用户登录的电子邮件:Asp.net mvc 返回ModelState而不是view,asp.net-mvc,Asp.net Mvc,我有一个基本的登录方法,我检查数据库中是否存在用户登录的电子邮件: [HttpPost] public ActionResult Login(Users model) { using (var db = new MySqlContext()) { if (db.Users.FirstOrDefault(u => u.Email == model.Email) == null) { ModelState.AddModel
[HttpPost]
public ActionResult Login(Users model)
{
using (var db = new MySqlContext())
{
if (db.Users.FirstOrDefault(u => u.Email == model.Email) == null)
{
ModelState.AddModelError(string.Empty, "Email doesn't exist");
Return SOMETHING
}
}
}
如您所见,我已经编写了返回一些内容
,实际上,我想要的是将ModelError返回到我的loginform,而不是视图
仅供参考,在我看来(这是一种模式),我有一个标准的Validationsummary
,如下所示:
@Html.ValidationSummary(true, "", new { @class = "text-danger"})
如果不返回视图,模态后面会显示什么?您必须返回某种类型的视图。(如果您像我喜欢的方法那样处理验证,这将得到处理,因为您实际上从未离开过页面) 要在模式上显示模型的错误消息,必须在验证失败时重新启动模式 无论返回什么视图,都必须检查模型状态是否有效,然后重新启动模态
@if (!ViewData.ModelState.IsValid)
{
//relaunch you're modal.
}
为什么不想返回视图?你想做什么?你通常不会
返回视图(模型)代码>?模型状态字典被传递到视图,验证错误将被显示。@juunas exactlyOk,好的。我明白你的观点@juunas问题是,登录表单驻留在一个模式中,这意味着,如果我返回ActionResult(“模式”,“主页”),它就不会在我的_布局页面上呈现,因为它是renderpartial。使用带有renderpartial或JsonResult的Ajax。谢谢你的回答!我明白你的意思。读朱纳斯的答案。我认为在这种情况下返回JsonResult更有意义?