我类似于以下内容
class EntityNameId
{
public string Name { get; set; }
public string Id { get; set; }
}
class OrganizationNameId : EntityNameId
{
}
class PersonViewModel
{
public PersonViewModel()
{
Organization = new OrganizationNameId();
}
OrganizationNameId Organization { get; }
}
如何在Required
中为PersonViewModel
设置OrganizationNameId.Id
属性,以便客户端验证有效?我不想将其放在OrganizationNameId
或EntityNameId
中,因为它并不总是必需的,但PersonViewModel
需要它。我正在使用MVC 3。
修改:我不想按Bas所述添加自定义属性。我有EntityNameId
的自定义部分视图,允许它可以重复使用。
答案 0 :(得分:0)
一个选项是向PersonViewModel添加一个属性,该属性绑定到组织属性:
[Required]
public int OrganizationId {
get { return Organization.Id; }
set { Organization.Id = value }
}
答案 1 :(得分:0)
public class EntityNameId
{
public string Name { get; set; }
public string Id { get; set; }
}
[MetadataType(typeof(OrganizationNameIdMetadataType))]
public class OrganizationNameId : EntityNameId
{
}
public class PersonViewModel
{
public PersonViewModel()
{
Organization = new OrganizationNameId();
}
public OrganizationNameId Organization { get; private set; }
}
public class OrganizationNameIdMetadataType
{
[Required]
public object Id { get; set; }
}
Customizing ASP.NET MVC 2 - Metadata and Validation
如何使用MetadataType属性?