2

使用如下代码:

public class FooModel {

    public BarModel Bar { get; set; }

}

public class BarModel {

    [Required]
    public string Baz { get; set; }

}

我想以FooModel.Bar一种形式呈现,但它是可选的。但是,如果没有在文本框中输入任何内容,表单将不会提交BarModel.Baz。有没有办法让嵌套模型成为FooModel可选而不需要删除RequiredAttribute

4

1 回答 1

1

有没有办法让 FooModel 中的嵌套模型成为可选,而不必删除 RequiredAttribute?

不是我知道的。我会建议您使用将适应您的视图要求的视图模型(即具有Baz可选的属性):

public class FooModel 
{
    public BarViewModelModel Bar { get; set; }
}

public class BarViewModelModel 
{
    public string Baz { get; set; }
}

这就是为什么您应该始终使用视图模型并且永远不要将域模型传递给视图的原因之一。如您所见,您的域模型不适合视图的特定要求。您可以在某些视图中有一些属性是必需的,而在其他视图中是可选的。

于 2012-09-18T15:45:32.047 回答