这工作正常
[MetadataType(typeof(Area_Validation))]
public partial class Area
{
...
}
public class Area_Validation
{
[Required(ErrorMessage = "Please add this field.")]
public int Email { get; set; }
[Required(ErrorMessage = "Please add this field")]
public string Name { get; set; }
}
但是如果Area_Validation
是动态创建的呢?例如,后端的订阅字段可以由用户创建并最终如下所示:
如何在每个字段上设置元数据以进行自动验证?
目前我正在做:
public class SubscriberFormViewModel
{
public List<SubscriberFieldModel> Fields { get; private set; }
public Calendar Calendar { get; private set; }
public Company Company { get; private set; }
public SubscriberFormViewModel()
{
// TODO: This is only for testing while validation is not set
}
public SubscriberFormViewModel(Decimal calendarId)
{
if (calendarId > 0)
{
SubscribersRepository db = new SubscribersRepository();
Calendar calendar = db.GetCalendarById(calendarId);
Company company = db.GetCompanyById(calendar.company_id);
this.Fields = db.FindAllSubscriberFieldsByCalendar(calendarId);
this.Calendar = calendar;
this.Company = company;
}
else
this.Fields = new List<SubscriberFieldModel>();
}
}
我想在所有属性中设置元数据Fields
换句话说,这Fields
是从数据库中填充的,可以有多种类型,可以是string
、number
、dropdown
等……有点像 MailChimp 字段属性:
有没有办法以编程方式执行此操作,或者我需要创建一个 jQuery 插件来验证它并停止使用 MVC2 的使用验证?
谢谢