MVC3在控制器中绑定验证

时间:2012-11-24 00:31:05

标签: c# asp.net-mvc-3

我花了很多时间在谷歌上找不到答案。

而不是像

那样在模型类中使用属​​性
public class MyModel
{
   [Required]
   public string Name {get; set;}
}

我可以在控制器中添加Required要求而不是属性吗?

我期待像ValidationProvider.Add(一些模型属性,一些约束) 以前有人这样做过吗?

3 个答案:

答案 0 :(得分:2)

是的,你可以(在控制器方法中):

if(string.IsNullOrWhiteSpace(model.Name))
  ModelState.AddModelError("Name", "Name is required");

if(!ModelState.IsValid)
  return View();

但实际上你应该使用这些属性,或者在你的模型类上实现IValidatableObject。保持良好的分离。

答案 1 :(得分:0)

如果您可以使用HTML5,则可以在字段本身(在视图中)中使用required属性。还要考虑.Net的FluentValidation(http://fluentvalidation.codeplex.com/)。或者您可以使用knockoutjs框架来控制必填字段。

答案 2 :(得分:0)

你不应该这样做,因为如果你这样做,那么在数据层就不需要该属性,也没有相应的数据库约束。