我的模型中有以下属性:
[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));
...
(当我们到达此片段的开头时,FlashFile为空)
然而,此时allErrors
是“需要Flash文件”。
(我从here)开始这样做的想法。
如何避免验证FlashFile属性?
答案 0 :(得分:0)
如何避免验证FlashFile属性?
使用适合此视图要求的视图模型。这是正确的方法。如果不需要FlashFile
属性,则设计一个视图模型,该模型对此操作没有Required
属性。
解决此问题的错误方法是尝试重用您的域模型,然后从模型绑定中排除您不需要的属性:
try
{
this.UpdateModel(model, null, null, new[] { "FlashFile" });
model.FlashFile = "1";
}
catch (Exception ex)
{
string allErrors = string.Join(
",",
ModelState.Values.SelectMany(v => v.Errors).Select(e => e.ErrorMessage)
);
...
}