我想在登录点击时执行数据库操作。 所以我使用存储过程来获取数据,但在这里我遇到了一些关于模型异常的问题。
public ActionResult Login(UserInfo model, string returnUrl)
{
if (ModelState.IsValid)
{
List<UserInfo> loginDetails = dbContext.Database.SqlQuery<UserInfo>
("exec spGetloginUserInfo @username,@password", new SqlParameter("@username", model.username), new SqlParameter("@password", model.password)).ToList();
return RedirectToLocal(returnUrl);
}
// If we got this far, something failed, redisplay form
ModelState.AddModelError("", "The user name or password provided is incorrect.");
return View(model);
}
我的模特
public class UserInfo
{
public string usertype { get; set; }
public string username { get; set; }
public string password { get; set; }
public bool active { get; set; }
public DateTime lastmodifieddate { get; set; }
public string modifiedby { get; set; }
public bool RememberMe { get; set; }
}
抛出的异常是
类型的例外 &#39; System.Data.Entity.ModelConfiguration.ModelValidationException&#39; 发生在EntityFramework.dll中但未在用户代码中处理
请告诉我我在哪里做错,以及我的方法是否正确? 除了存储过程方法之外,还有其他任何数据库交互方式。
答案 0 :(得分:0)
ModelState.AddModelError抛出错误但您的客户端/ javascript / views未捕获该错误。
以下是有关如何在视图中实现类似错误处理的链接。
ASP.NET MVC 2 Model Errors with Custom Exceptions
此外,请确保您的模型UserInfo包含每个属性的有效数据
Login(UserInfo model, string returnUrl) <<-- the model of type UserInfo