作为我上一个问题(MVC abstract ViewModel, retain Validation Attributes (dynamically))的后续内容,我想我会在备用版本中提出这个问题。
所以,让我们考虑相同的情况,我有一个核心ViewModel:
public class SampleViewModel {
[Required]
public string Property1 { get; set; }
[Required]
[EmailAddress]
public string Property2 { get; set; }
public IList<AnotherModel> Items { get; set; }
}
另一种模式:
public AnotherModel {
public string Value { get; set; }
}
然后在控制器中执行以下操作:
var model = new SampleViewModel();
var fields = new List<AnotherModel>() {
new AnotherModel() { Value = model.Property1 },
new AnotherModel() { Value = model.Property2 },
};
所以,我的问题是,如何让AnotherModel模型响应传递给各自Value属性的属性。
在上面的示例中,第一个AnotherModel将是必需,第二个将是必需,以及 EmailAddress 。
这怎么可能?
谢谢
出于此目的,假设每个AnotherModel对象都由表单字段表示。当回发表单时,我使用自定义模型绑定器从AnotherModel获取Value并将其放回source属性(因此Property1)。我的模型正确重建,ModelState.IsValid正在工作。所以,我在回发后对我的SampleViewModel进行了服务器端验证。根据模型的验证属性,这可以以某种方式传递给客户端以验证我吗?
由于