忽略实体的必填字段

Dan*_*-SP 1 asp.net-mvc-2

我在我的实体中得到以下变量:

[DataType(DataType.Currency)]   
[DisplayName("Value U$:")]
[Required(ErrorMessage = "Currency Required.")]
public decimal? CurrecyValue { get; set; }
Run Code Online (Sandbox Code Playgroud)

实际上我使用这个实体,我不需要这个领域.一旦我发布任何信息,ModelState就会变得无效,因为它是必需的.

我知道我可以使用ModelState.Clear();但是,这样做我将忽略我需要的所有其他验证.

有没有办法在不清除整体的情况下忽略这个特定领域ModelState

谢谢 !

Dar*_*rov 5

丑陋且完全不推荐的解决方法:

ModelState.Remove("CurrecyValue");
Run Code Online (Sandbox Code Playgroud)

推荐解决方案

使用视图模型.但是真实的模型.不是你称之为视图模型的一些混合体,而是你坚持你的域实体,你想知道如何摆脱它只是因为它们不适应给定视图的要求.您应该为每个视图定义特定的视图模型.如果你不遵循这个非常简单的规则,你将在ASP.NET MVC中遇到很多困难.