如何更改所有int字段的消息,而不是说:
The field must be a number 用英文表示:
El campo tiene que ser numerico 在西班牙语中.
有办法吗?
validation asp.net-mvc localization numbers data-annotations
如果我有一个包含字段列表的搜索对象,我可以使用System.ComponentModel.DataAnnotations命名空间将其设置为验证搜索中至少有一个字段不为null或为空吗?即所有字段都是可选字段,但应始终输入至少一个字段.
asp.net validation asp.net-mvc data-annotations asp.net-mvc-2
显然,可以在运行时动态地将DataAnnotation属性附加到对象属性,从而实现动态验证.
有人可以提供代码示例吗?
我想在库程序集中使用数据验证属性,这样数据的任何使用者都可以在不使用ModelBinder的情况下对其进行验证(例如,在控制台应用程序中).我该怎么做?
我有2个课程:客户和调查.
每个客户可以进行多次调查 - 但只有一次默认调查.
我已经定义了这样的类:
public class Client
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public string ClientName { get; set; }
public Nullable<int> DefaultSurveyID { get; set; }
[ForeignKey("DefaultSurveyID")]
public virtual Survey DefaultSurvey { get; set; }
public virtual ICollection<Survey> Surveys { get; set; }
}
public class Survey
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public string SurveyName { get; set; }
[Required]
public int ClientID { get; set; }
[ForeignKey("ClientID")]
public virtual Client …Run Code Online (Sandbox Code Playgroud) 我DataAnnotations用于在ASP.NET MVC应用程序中ViewModel使用jquery.validate.unobtrusive和在服务器端验证我的客户端.
不久前,我发现我可以写这样的验证:
[Required(ErrorMessage = "{0} is required")]
public string Name { get; set; }
Run Code Online (Sandbox Code Playgroud)
这样我就可以在配置或资源中轻松定义一些通用字符串,并始终使用它DataAnnotations.因此,将来在整个应用程序中更改验证消息会更容易.
另外我知道有一个FluentValidation库允许向现有的验证规则添加验证规则ViewModel.我知道添加/编辑有一个问题ViewModels,可能有类似的字段,但ValidationRules不同.
客户端验证的另一个问题是,应该解析新添加到DOM的 html (使用ajax请求)以启用验证.我是这样做的:
$('#some-ajax-form').data('validator', null);
$.validator.unobtrusive.parse('#some-ajax-form');
Run Code Online (Sandbox Code Playgroud)
所以我有一些问题:
ViewModel验证问题的最佳方法?我可以使用DataAnnotations与FluentValidation或单独添加和编辑ViewModels仍然是最好的选择?我不是问如何创建自己的DataValidators我知道怎么做.我想方设法如何以更高效和易维护的方式使用它们.
c# validation asp.net-mvc data-annotations unobtrusive-validation
我可以使用MVC 2 DataAnnotations指定字符串字段的最小长度吗?
有没有人这样做或者他们创建了自定义属性,如果是这样,你介意分享源?
我一直在使用新的ASP.Net MVC 3 RemoteAttribute向具有单个参数的动作方法发送远程调用.现在我想使用AdditionalFields属性传入第二个参数:
[Remote("IsEmailAvailable", "Users", AdditionalFields = "InitialEmail")]
Run Code Online (Sandbox Code Playgroud)
IntialEmail是视图中的隐藏字段.动作如下:
public JsonResult IsEmailAvailable(
string email,
string InitialEmail)
{
//etc.
}
Run Code Online (Sandbox Code Playgroud)
呈现视图时,将填充隐藏字段,但是远程触发Action方法时,该值为空字符串.
我在其他地方看到区分大小写可能是一个问题,所以我确保Action方法对两个参数都有相同的情况.
还有其他建议吗?此AdditionalFields曾被称为Fields.
谢谢,
Beaudetious
我的模型中有这两个字段:
[Required(ErrorMessage="The start date is required")]
[Display(Name="Start Date")]
[DisplayFormat(DataFormatString = "{0,d}")]
public DateTime startDate { get; set; }
[Required(ErrorMessage="The end date is required")]
[Display(Name="End Date")]
[DisplayFormat(DataFormatString = "{0,d}")]
public DateTime endDate{ get; set; }
Run Code Online (Sandbox Code Playgroud)
我要求endDate必须大于startDate.我试过使用,[Compare("startDate")]但这只适用于相同的操作.
我应该用什么来做"大于"的操作?
我在电子邮件字段中使用此代码:
[Required]
[DataType(DataType.EmailAddress)]
[Display(Name = "Email address")]
public string Email { get; set; }
Run Code Online (Sandbox Code Playgroud)
[DataType(DataType.EmailAddress)] 不起作用(不在客户端的服务器上进行验证).
我不确定是否应该自己实现自定义属性,或者我可以使用MVC 3中包含的属性.
如果需要,请您建议我创建自定义属性的解决方案.
我还阅读了一些额外的扩展,例如 http://nuget.org/packages/DataAnnotationsExtensions.MVC3
你能告诉我吗?