来自一个公共类的必需字段和非必填字段

时间:2011-10-25 10:36:54

标签: asp.net-mvc asp.net-mvc-3 entity-framework

我正在使用ASP.NET MVC3,我有以下类:

public class AddressMetadata
{
    public string State { get; set; }
    public string City { get; set; }
    public string Street { get; set; }
}

我还有以下编辑模型:

[Display(Name = "First Address")]
public Address FirstAddress { get; set; }
[Display(Name = "Second Address")]
public Address SecondAddress { get; set; }

我必须根据需要从FirstAddress创建所有字段,但是来自SecondAddress的其他字段不是。

如果不为第二个地址创建新类,我怎么能这样做?我知道我可以在AddressMetadata类中使用 [Required] 指令,但是如何在FirstAddress和SecondAddress之间划分这些规则?

1 个答案:

答案 0 :(得分:1)

我想这样的事情会起作用,而不是100%肯定,我自己会尝试。 (我实际上是从EditorTemplates开始的)

  • 仅将[必需]添加到EditModel中的FirstAddress。
  • 将[必需]添加到Adress类的所有属性。
  • 为Address类编写TemplateEditor。

TemplateEditor将Address作为其模型,并使用Address类注释对其进行验证,而View将根据EditModel注释进行验证。

请原谅我的英语不好。

编辑:忘记了这一点:在视图中通过

渲染EditorTemplate
@Html.EditorFor (m => m.FirstAddress)