我在我的实体中得到以下变量:
[DataType(DataType.Currency)]
[DisplayName("Value U$:")]
[Required(ErrorMessage = "Currency Required.")]
public decimal? CurrecyValue { get; set; }
实际上我使用这个实体,我不需要这个领域。一旦我发布任何信息,ModelState就会变得无效,因为它是必需的。
我知道我可以使用ModelState.Clear();
但是,这样做我会忽略我需要的所有其他验证。
有没有办法在不清除整个ModelState
的情况下忽略此特定字段?
谢谢!
答案 0 :(得分:5)
丑陋且完全不推荐的解决方法:
ModelState.Remove("CurrecyValue");
推荐的解决方案:
使用视图模型。但是真实的模型。不是你称之为查看模型的一些混合体,而是你坚持你的域实体,你想知道如何摆脱它只是因为它们不适应给定视图的要求。您应该为每个视图定义特定的视图模型。如果你不遵循这个非常简单的规则,那么你将很难使用ASP.NET MVC。