我有一个用于创建类似项目的表单。我将简化演示场景。
您可以创建众多“内容类型”中的一种。您可以选择添加“文件”,“文件夹”,“公告”等。我会使用/ home / addcontent?contenttype = FILE来确定要在视图中显示的选项。
每个内容项都有以下内容。
“文件”也有:
公告也有:
我可以将所有这些添加到一个带有所有数据注释的viewmodel,但是modelstate.isvalid几乎永远不会为真,因为每个“内容类型”都有唯一的属性。
是否有一些编程方式来添加或排除特定数据注释,或者我应该为每种内容类型设置单独的视图模型和控制器?
答案 0 :(得分:0)
我能想到的唯一方法是使用RemoteValidationAttribute。
Look here也是样本
然后在您的控制器中,您将不使用ModelState.IsValid,而只使用业务逻辑层中的验证
您还可以考虑使用JQuery.validation和您自己的脚本来检查字段