【发布时间】:2014-06-23 15:23:25
【问题描述】:
我正在使用 Entity Framework 6 开发 MVC 4 应用程序,但遇到了数据注释问题。无论我使用什么注释,它都不会被验证。 我正在使用以下视图模型来呈现表单:
public class UserViewModel
{
[Required(ErrorMessage = "First Name is required")]
[Display(Name = "First Name")]
[StringLength(100, MinimumLength = 2)]
public string FirstName { get; set; }
...
}
在视图中:
@Html.LabelFor(m => m.FirstName)
@Html.EditorFor(m => m.FirstName)
@Html.ValidationMessageFor(m => m.FirstName)
它会被渲染:
<label for="FirstName">First Name</label>
<input class="text-box single-line" id="FirstName" name="FirstName" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="FirstName" data-valmsg-replace="true"></span>
当我单击提交按钮时,不会触发客户端验证,并且在控制器中 ModelState.IsValid 为 true。
更新:
控制器:
[HttpGet]
public ActionResult Edit(int? Id)
{
var model = _userService.GetUserById(Id);
return View(model);
}
[HttpPost]
public ActionResult Edit(UserViewModel model)
{
if (ModelState.IsValid == true)
{
_userService.Save(model);
return View(model);
}
return View(model);
}
【问题讨论】:
-
你能从你的控制器动作中发布代码吗?
-
您是否在视图中包含了 javascript 文件?
-
你是通过ajax加载表单吗?
-
@Fals :是的,我包含了这个 javascript:
-
@CodingDawg :不,不使用 ajax。