2017-03-07 95 views
0

的ModelState我有一个基本的登录方法,在这里我检查电子邮件与该用户登录,在数据库中存在:返回,而不是观点

[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 
     } 
    } 
} 

正如你所看到的,我已经写Return SOMETHING,和真的,我想要的是仅仅将ModelError返回到我的登录形式而不是视图。

据透露,在我看来(这是一个模式),我有一个标准Validationsummary这样的:

@Html.ValidationSummary(true, "", new { @class = "text-danger"}) 
+1

为什么你不想返回一个视图?你想做什么? – Fran

+3

你不是典型的只是'返回视图(模型);'?模型状态字典被传递给视图并显示验证错误。 – juunas

+0

@juunas究竟 – Fran

回答

0

如果不返回查看,你会显示背后的模式?你将不得不返回某种视图。 (如果您处理像this这是我首选的方法验证,这将被照顾,因为你永远不会离开页面)。

要在模型上显示模型的错误消息,您将必须在验证失败时重新启动模态。

在你回归的任何视图上,你必须检查模型状态是否有效并重新启动模态。

@if (!ViewData.ModelState.IsValid) 
{ 
    //relaunch you're modal. 
} 
+0

谢谢你的回答!我明白你的观点。改为阅读juunas。我认为在这种情况下返回一个JsonResult更有意义? –

+0

是的,我喜欢这样,无论哪种方式会奏效。 – CSharper