数据批注在 MVC 4 中未显示错误消息
Data annotations not displaying error message in MVC 4
我在MVC 4中有一个简单的cshtml页面,如下所示:
@model MvcApplication2.ViewModels.UserViewModel
<html>
<head>
<meta name="viewport" content="width=device-width" />
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
</head>
<body>
<div>
@using (Html.BeginForm("Add", "User", FormMethod.Post))
{
@Html.ValidationMessageFor(m => m.FirstName)
@Html.TextBoxFor(m => m.Ime)
<br />
@Html.ValidationMessageFor(m => m.LastName)
@Html.TextBoxFor(m => m.LastName)
<br />
<input id="btnSubmit" type="submit" value="Add user" />
}
</div>
</body>
</html>
这是我的UserViewModel类:
public class UserViewModel
{
[Required(ErrorMessage = "This field is required.")]
public string FirstName;
[Required(ErrorMessage = "This field is required.")]
public string LastName;
}
这是控制器中的操作"添加":
[HttpPost]
public ActionResult Add(User s)
{
if(ModelState.IsValid)
{
Connection.dm.User.Add(s);
Connection.dm.SaveChanges();
}
return RedirectToAction("Index");
}
这里的问题是,如果用户没有在 2 个文本框字段中输入内容,我根本没有收到任何错误消息......会是什么?
参考使用 try.. catch.. 块,你可以做这样的事情:
[HttpPost]
public ActionResult Add(User s)
{
if(ModelState.IsValid)
{
try{
Connection.dm.User.Add(s);
Connection.dm.SaveChanges();
}
catch(NullReferenceException)
{
ModelState.AddModelError("Ime", "Please enter something"); // for the first name validation
return View(s);
}
return RedirectToAction("Index");
}
或者你可以使用一些条件逻辑,比如:
[HttpPost]
public ActionResult Add(User s)
{
if(ModelState.IsValid)
{
if(string.IsNullOrWhiteSpace(s.Ime)
{
ModelState.AddModelError("Ime", "Please enter something");
return View(s);
}
else
{
Connection.dm.User.Add(s);
Connection.dm.SaveChanges();
}
}
return RedirectToAction("Index");
}
相关文章:
- ng消息仅在触摸时显示错误,并在错误的初始显示上转换
- ui网格日期单元格过滤器,过滤日期格式导致显示错误的日期
- java脚本的数学方程显示错误的答案
- 如果用户输入的长度小于最小长度,则显示错误消息
- Push方法显示错误
- Javascript设置日期不起作用,显示错误的时间
- 显示错误的Ajax调用无法调试
- 显示错误结果的Javascript
- 分页逻辑显示错误的页码
- 如何显示错误消息
- 表单提交没有'如果为空,则不会显示错误消息
- 使用RecordRTC录制的WebRTC视频在IE和Safari中显示错误
- 如何仅在存在最小值和最大值时才显示错误消息
- AngularJS错误处理:根据错误数组显示错误
- PHP 显示错误的名称值
- 在 api 调用$resource显示错误和成功消息
- 为什么 Angularjs 总是显示错误消息
- 在单选按钮验证中同时显示错误消息
- jQuery'摇动'功能显示错误
- Jquery添加更多和删除冲突并显示错误值