【发布时间】:2012-08-27 17:02:13
【问题描述】:
我的模型中有以下属性:
[Display(Name = "ActivityModel_FlashFile", ResourceType = typeof(App_GlobalResources.Models))]
[Required(ErrorMessageResourceName = "ActivityModel_FlashFile_Required", ErrorMessageResourceType = typeof(App_GlobalResources.Models))]
public string FlashFile { get; set; }
在我的控制器中我这样做:
ModelState.Remove("FlashFile");
model.FlashFile = "1";
try
{
this.UpdateModel(model);
}
catch (Exception ex)
{
string allErrors=string.Join(",",ModelState.Values.SelectMany(v => v.Errors).Select(e=>e.ErrorMessage));
...
(当我们到达这个 sn-p 的开头时,FlashFile 是空的)。
然而,此时allErrors 是“需要Flash 文件”。
(我从here 中得到了这样做的想法)。
如何避免验证 FlashFile 属性?
【问题讨论】:
-
为什么不直接从 FlashFile 属性中去掉Required?
-
在某些情况下我需要它(最初我在 IF 语句中为 FlashFile 分配了一个“人工”值,但我为这个问题简化了它)。我还需要它进行客户端验证
-
如果您在某些情况下需要它,那么您的情况最适合 ViewModel 模式(在此处查看更多信息:dotnet.dzone.com/articles/model-view-viewmodel-design)
标签: asp.net-mvc model asp.net-mvc-4