忽略实体的必填字段

时间:2011-12-06 12:47:57

标签: asp.net-mvc-2

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

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

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

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

有没有办法在不清除整个ModelState的情况下忽略此特定字段?

谢谢!

1 个答案:

答案 0 :(得分:5)

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

ModelState.Remove("CurrecyValue");

推荐的解决方案:

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