Asp.net mvc 2 mvc2的动态验证
这个很好用Asp.net mvc 2 mvc2的动态验证,asp.net-mvc-2,asp.net-mvc-validation,Asp.net Mvc 2,Asp.net Mvc Validation,这个很好用 [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 thi
[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; }
}
但是如果区域验证是动态创建的呢?例如,用户可以在后端创建订阅字段,并以如下方式结束:
如何在每个字段上设置元数据以进行自动验证
目前我正在做:
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>();
}
}
公共类SubscriberFormViewModel
{
公共列表字段{get;private set;}
公共日历{get;private set;}
上市公司{get;private set;}
公共SubscriberFormViewModel()
{
//TODO:这仅用于未设置验证的测试
}
公共SubscriberFormViewModel(十进制日历ID)
{
如果(日历ID>0)
{
SubscribersRepository db=new SubscribersRepository();
Calendar Calendar=db.GetCalendarById(calendarId);
Company Company=db.getcompanybyd(calendar.Company\u id);
this.Fields=db.FindAllSubscriberFieldsByCalendar(calendarId);
这个。日历=日历;
这个公司=公司;
}
其他的
this.Fields=新列表();
}
}
我想在所有字段
属性中设置元数据
换句话说,此字段是从数据库填充的,可以有多种类型,可以是字符串
,数字
,下拉列表
,等等。。。有点像MailChimp字段属性:
有没有办法完成这个程序呢?或者我需要创建一个jQuery插件来验证它,并停止使用MVC2中的使用验证
谢谢我认为使用数据注释属性无法做到这一点
Codeplex中有一个名为的项目,允许您使用.Net代码以流畅的方式添加验证规则。我从未使用过该项目,但它似乎可以帮助您处理动态创建的对象
希望有帮助 实际上,您可以创建多个验证场景,每种类型一个(或者如果需要,每种类型多个)。然后在类型创建时添加此验证规则。当您需要验证时,您可以调用模板验证方法,该方法将检查这些规则是否正确,如果不正确,将向ModelState添加错误,您将能够在前端显示这些错误
实际上,添加任何属性都没有什么好处,因为attributes pro可以用它们装饰您的类型。当你在做一些动态的事情时,你最好有一些动态的方法来添加验证。howdy:)我想在它上面添加一些jQuery来使用类命名约定进行验证,因为我知道它的类型以及它是否需要。。。这一切都是为了使用javascript来完成,因为在控制器中,我总是可以返回错误,只是想做正确的事情,并节省到服务器的往返时间:)-我会看看这个项目。好吧。。。请告诉我最新情况!还可以看看这个jQuery插件:http://bassistance.de/jquery-plugins/jquery-plugin-validation/
。它与asp.net mvc无缝集成,是一个非常好的插件,可以帮助满足您的需求。。。