我在谷歌上花了很多时间,但找不到答案。
而不是在模型类中有一个属性,比如
public class MyModel
{
[Required]
public string Name {get; set;}
}
我可以在控制器中添加必需的要求而不是属性吗?
我期待类似 ValidationProvider.Add(一些模型属性,一些约束) 以前有人做过吗?
我在谷歌上花了很多时间,但找不到答案。
而不是在模型类中有一个属性,比如
public class MyModel
{
[Required]
public string Name {get; set;}
}
我可以在控制器中添加必需的要求而不是属性吗?
我期待类似 ValidationProvider.Add(一些模型属性,一些约束) 以前有人做过吗?
是的,你可以(在控制器方法中):
if(string.IsNullOrWhiteSpace(model.Name))
ModelState.AddModelError("Name", "Name is required");
if(!ModelState.IsValid)
return View();
但实际上你应该使用属性,或者IValidatableObject
在你的模型类上实现。把东西很好地分开。
如果您可以使用 HTML5,您可以在字段本身(在视图中)使用 required 属性。还要考虑 .Net 的 FluentValidation (http://fluentvalidation.codeplex.com/)。或者您可以使用 knockoutjs 框架来控制必填字段。
您不应该这样做,因为如果这样做,数据层将不需要该属性,并且不会有相应的数据库约束。