我想在登录时执行一个数据库操作。因此,我使用存储过程来获取数据,但在这里,我面临一些关于模型异常的问题。
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; }
}引发的异常是
'System.Data.Entity.ModelConfiguration.ModelValidationException‘类型的异常发生在EntityFramework.dll中,但未在用户代码中处理
请让我知道我在哪里做错了,我的做法是否正确?还有其他的数据库交互方式--存储过程方法吗?
发布于 2014-12-27 14:13:41
ModelState.AddModelError抛出一个错误,但是您的客户机/javascript/视图没有捕捉到该错误。
下面是关于如何在视图中实现类似错误处理的链接。
ASP.NET MVC 2 Model Errors with Custom Exceptions
另外,确保您的模型UserInfo具有每个属性的有效数据。
Login(UserInfo model, string returnUrl) <<-- the model of type UserInfohttps://stackoverflow.com/questions/27667927
复制相似问题