M.A*_*zad 2 asp.net-mvc data-annotations asp.net-mvc-4
我有一个像这样的模特
public int Id {get;set;}
[Required]
public string FirstName{get; set}
[Required]
public string LastName{get; set}
Run Code Online (Sandbox Code Playgroud)
Id在DB中自动生成.当我想要调用Create Action时ModelState说"需要Id字段"!!!! 我找到了这个问题,但它不是干净的解决方案.还有其他方法可以解决这个问题吗?
有没有办法改变值类型的Mvc ModelBinder行为?
解决此问题的最佳方法是使用视图模型.视图模型是您专门设计的类,以满足视图的要求.因此,您的控制器操作将此视图模型作为参数.只需停止将您的域模型传递给您的视图即可.而已.
如果您不想遵循良好实践并使用视图模型,可以通过向您的以下内容添加以下内容来禁用此隐式验证Application_Start:
DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
Run Code Online (Sandbox Code Playgroud)
另一个hack是使用该[Bind(Exclude = "Id")] 属性从绑定中排除此属性.是的,这是一个黑客,但如果你不遵循良好的做法,你将不得不忍受黑客攻击.
| 归档时间: |
|
| 查看次数: |
2278 次 |
| 最近记录: |