【发布时间】:2014-09-24 10:47:38
【问题描述】:
我有一个带有一些属性的模型,模型中不需要它们([Required]),因为在某些不需要的形式中使用它们。 问题是现在我必须使用这个模型做一个表单,其中一个属性必须是必需的。 ¿ 有没有办法在不改变模型类的情况下使这个属性成为必需?
如果没有js也更好,但是如果没有别的办法... =P
提前致谢!
【问题讨论】:
标签: c# asp.net validation required
我有一个带有一些属性的模型,模型中不需要它们([Required]),因为在某些不需要的形式中使用它们。 问题是现在我必须使用这个模型做一个表单,其中一个属性必须是必需的。 ¿ 有没有办法在不改变模型类的情况下使这个属性成为必需?
如果没有js也更好,但是如果没有别的办法... =P
提前致谢!
【问题讨论】:
标签: c# asp.net validation required
尚未测试,但在我看来它可以工作。
您可以创建一个包含您需要的所有字段的基本模型。在派生模型类中,您可以派生所需的特定属性,并在那里设置属性。
【讨论】:
Patrick 解决方案的替代方法是使用 MetadataType 属性。
基本上,您创建一个派生自原始类的类,并创建一个单独的类来指定所有属性。
这里是一个例子:
public class User {
public string Email { get; set; }
}
[MetadataType(typeof(InsertUserModelMetadata))]
public class InsertUserModel : User {
}
internal class InsertUserModelMetadata {
[Required]
public string Email { get; set; }
}
【讨论】: