Tag: data annotations

对标有PhoneAttribute或UrlAttribute的字段允许空字符串

我正在使用CodeFirst Entitty框架5.我有一个代表用户的类。 public class User { [Key] public int UserId { get; set; } [Url] [DataType(DataType.Url)] [Required(AllowEmptyStrings= true)] public string WebSite { get; set; } [Phone] [DataType(DataType.PhoneNumber)] [Required(AllowEmptyStrings = true)] public string Phone { get; set; } [Phone] [DataType(DataType.PhoneNumber)] [Required(AllowEmptyStrings = true)] public string Fax { get; set; } } 我非常喜欢Phone和Url属性的validation机制,但遗憾的是,当标记有这些属性的字段是我实际想要允许的空字符串时,validation失败。 [Required(AllowEmptyStrings = true)]似乎不适用于Phone或Url属性。 这似乎适用于其他一些DataAnnotations属性,如EmailAddress […]

如何在mvc 4中自动将占位符属性添加到html输入类型编号?

这是一个非常具体的问题。 我设法通过使用名为EmailAddress.cshtml的编辑器模板自动将占位符属性添加到html5电子邮件输入类型,保存在~/Views/Shared/EditorTemplates/文件夹中。 请参阅以下代码: @Html.TextBox(“”, ViewData.TemplateInfo.FormattedModelValue, new { @class = “text-box single-line”, placeholder = ViewData.ModelMetadata.Watermark }) 它的工作原理是因为我在视图模型中使用了[DataType(DataType.EmailAddress)] DataAnnotation。 什么不起作用是我使用int? 变量。 public class MiageQuotaRequestViewModel { [Required] [DataType(DataType.EmailAddress)] [Display(Name = “Nombre de place demandées”, Prompt = “Nombre de place”)] [Range(0, 50, ErrorMessage = “La demande doit être comprise entre 0 et 50 places”)] public int? RequestedQuota { get; […]

如何将数据注释添加到分部类?

我有一个自动生成的类,上面有一个属性。 我想在另一个相同类型的部分类中向该属性添加一些数据注释。 我该怎么办? namespace MyApp.BusinessObjects { [DataContract(IsReference = true)] public partial class SomeClass: IObjectWithChangeTracker, INotifyPropertyChanged { [DataMember] public string Name { get { return _name; } set { if (_name != value) { _name = value; OnPropertyChanged(“Name”); } } } private string _name; } } 在另一个文件中我有: namespace MyApp.BusinessObjects { public partial class SomeClass { private […]

如何在C#和DataAnnotation中创建通用的UniqueValidationAttribute?

我正在尝试使用System.ComponentModel.DataAnnotations.ValidationAttribute创建UniqueAttribute 我希望这是通用的,因为我可以传递Linq DataContext,表名,字段并validation传入值是否唯一。 这是一个不可编译的代码片段,我现在卡在这里: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ComponentModel.DataAnnotations; using System.Data.Linq; using System.ComponentModel; namespace LinkDev.Innovation.Miscellaneous.Validation.Attributes { public class UniqueAttribute : ValidationAttribute { public string Field { get; set; } public override bool IsValid(object value) { string str = (string)value; if (String.IsNullOrEmpty(str)) return true; // this is where I’m stuck return […]

ASP.NET MVC4多语言数据注释

在标准应用程序中,我有以下内容: [Required] [DisplayName(“Email Address”)] public string EmailAddress { get; set; } …这反过来会自动生成一个英文表格字段的标签。 现在,如果我需要我的应用程序支持5种语言,那么ASP.NET MVC应用程序处理此问题的最佳方法是什么? 适用范围约为400-600个数据字段。 更新:我还需要支持更新应用程序中的小部分文本,如页面名称和每个表单的介绍(小段落)。

DataAnnotation比较两个属性

在允许发布表单之前,有没有办法使用数据注释来比较两个表单字段(例如确认电子邮件地址)是否相同? 例如。 正则表达式数据注释可以使用匹配函数来引用ViewModel中的另一个属性吗?

文化特定数据注释

我正在尝试获取文化特定的数据注释。 [DisplayFormat(DataFormatString = “{0:d}”)] public DateTime Date{ get; set; } 我认为这会奏效。 因此,在美国,它将显示DD / MM / yyyy,在欧洲,它将显示MM / DD / YYYY。 为了测试这一点,我将默认的chrome语言设置为英语(UK)并重新启动浏览器。 我仍然在使用US格式,这让我相信我的DataFormatString不尊重文化。 我该怎么解决这个问题? 我还可以削减一年,所以它只是“yy”而不是“yyyy”吗?

自定义validation属性有多个实例问题

我在C#4中使用tha命名空间System.ComponentModel.DataAnnotations来实现我自己的validation属性,它看起来像这样 [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] public sealed class MyCustomValidator : ValidationAttribute { private String Property1 { get; set; } private String Property2 { get; set; } public ValeTaxiSituacaoRequired(String property1, String property2) { Property1 = property1; Property2 = property2; } public override bool IsValid(object value) { //validation logic } } 我想使用这个属性如下 [MyCustomValidator(“Name”, “Job”)] [MyCustomValidator(“Name”, “Email”)] [MyCustomValidator(“Name”, […]

Guid的validation

我有一个强类型视图,它有一个DropDownListFor属性。 下拉列表中的每个项目都由GUID表示。 我所追求的是一种validation用户是否从下拉列表中选择项目的方法。 目前我还没有看到使用数据注释做这件事。 无论如何使用数据注释实现这一点,因此客户端和服务器端validation将起作用。 我猜我需要制作一个自定义方法来做到这一点但是想知道是否已经存在任何东西。

是否可以在MVC 3中打开/关闭validation数据注释?

我有两个单独的VIEWS访问相同的MODEL。 当我在模型上放置validation器数据注释时,它按照公布的方式工作,如果留空或不在范围内,则阻止提交数据(对于两个视图)。 但是,我有一个视图应该能够允许为属性保存空值或空值,而另一个视图需要输入或选择信息才能通过它。 换句话说,我想关闭一个视图中MODEL内属性的validation器,并将其保留为另一个视图。 这是示例代码: 模型: [Range(1, 999, ErrorMessage = “A submittal is required”)] public int SubmittalId { get; set; } 视图#1: @Model.AuditDoc.SubmittalsLabel.ConfigurableLabelDesc @Html.ValidationMessageFor(x => x.AuditDoc.SubmittalId) @Html.DropDownListFor(x => x.AuditDoc.SubmittalId, new SelectList(Model.AuditDoc.ListOfSubmittals, “Id”, “Name”)) 视图#2: @Model.AuditDoc.SubmittalsLabel.ConfigurableLabelDesc @Html.DropDownListFor(x => x.AuditDoc.SubmittalId, new SelectList(Model.AuditDoc.ListOfSubmittals, “Id”, “Name”)) 正如您所看到的,我想为View#2禁用该validation器数据注释,并将其保留为View#1。