Questions tagged «data-annotations»

诸如ASP.NET MVC之类的框架使用数据注释来启用基于模型的验证方法,并在客户端和服务器端的整个应用程序中实施一致的验证。它们是在ASP.NET MVC 2中首次引入的。除了ASP.NET MVC,它们还可以与其他技术(例如实体框架)一起使用,方法是通过在属性上手动放置属性,或使用T4模板自动生成。


16
在某些情况下禁用“必需的验证”属性
我想知道是否可以在某些控制器操作中禁用“必需的验证”属性。我想知道这是因为在我的一种编辑表单上,我不需要用户为他们先前已经指定的字段输入值。但是,我然后实现了一种逻辑,即当他们输入值时,它会使用一些特殊的逻辑来更新模型,例如对值进行哈希处理等。 关于如何解决此问题有任何建议吗? 编辑: 是的,客户端验证在这里是一个问题,因为它将不允许他们在不输入值的情况下提交表单。


2
流利的验证与数据注释[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 9年前关闭。 当用于ASP.NET MVC验证时,这两个验证包之间的操作区别是什么?他们似乎有相似的对象,一直到其对象名称。一个与另一个有关吗?他们有什么区别?这些差异以什么方式表示不同的用例? 流利验证(第三方解决方案) 数据注释(Microsoft“内置”)


7
用于DataAnnotation验证属性的Int或Number数据类型
在我的MVC3项目中,我存储足球/足球/曲棍球/ ...体育比赛的得分预测。因此,我的预测类的属性之一如下所示: [Range(0, 15, ErrorMessage = "Can only be between 0 .. 15")] [StringLength(2, ErrorMessage = "Max 2 digits")] [Remote("PredictionOK", "Predict", ErrorMessage = "Prediction can only be a number in range 0 .. 15")] public int? HomeTeamPrediction { get; set; } 现在,int在我的情况下,我还需要更改数据类型的错误消息。使用了一些默认值-“字段HomeTeamPrediction必须为数字。”。需要找到一种方法来更改此错误消息。此验证消息似乎也可以预测远程验证之一。 我已经尝试过[DataType]属性,但这在system.componentmodel.dataannotations.datatype枚举中似乎不是简单的数字。


10
指定带有数据注释的DateTime格式?
我的视图模型中有以下属性: [DataType(DataType.DateTime)] public DateTime? StartDate { get; set; } 如果我想显示日期,或用日期填充文本框,则可以使用以下命令: <%: Model.StartDate %> <%: Html.TextBoxFor(m => m.StartDate) %> 无论何时显示日期,它都将显示为:01/01/2011 12:00:00 AM 但我只想显示01/01/2011 有没有一种方法可以应用带有数据注释的显示格式?我不想去显示日期的每个实例,也不必添加一些代码来格式化它。

14
为什么我不能引用System.ComponentModel.DataAnnotations?
我正在尝试在WPF项目中使用DataAnnotations来指定字符串的最大长度,并具有以下内容: using System.ComponentModel.DataAnnotations; 但是,我得到了错误 类型或名称空间名称“ DataAnnotations”在名称空间“ System.ComponentModel”中不存在(您是否缺少程序集引用?) 我看过其他示例,该名称空间中DataAnnotations 确实存在。我正在使用C#4。有什么原因我不能使用这个吗?我该如何解决?


5
单元测试ASP.NET DataAnnotations验证
我正在使用DataAnnotations进行模型验证,即 [Required(ErrorMessage="Please enter a name")] public string Name { get; set; } 在我的控制器中,我正在检查ModelState的值。对于从我的视图发布的无效模型数据,这正确返回了false。 但是,在执行控制器动作的单元测试时,ModelState始终返回true: [TestMethod] public void Submitting_Empty_Shipping_Details_Displays_Default_View_With_Error() { // Arrange CartController controller = new CartController(null, null); Cart cart = new Cart(); cart.AddItem(new Product(), 1); // Act var result = controller.CheckOut(cart, new ShippingDetails() { Name = "" }); // Assert …

1
来自数据注释的Asp.Net Mvc隐藏字段
我以为这将是对Google的快速搜索,但也许我缺少了一些东西。有没有一种方法可以使用Data Annotations设置ViewModel属性以在呈现标记时创建HiddenInput? 我发现的唯一注释是将属性完全从视图中隐藏,我仍然希望呈现该属性,但将其作为隐藏的输入。

16
创建时显示“ Id字段为必填”验证消息;ID未设置为[必填]
当我尝试使用Asp.Net MVC 2中的“创建样式”操作创建实体时,就会发生这种情况。 POCO具有以下属性: public int Id {get;set;} [Required] public string Message {get; set} 在创建实体时,会自动设置ID,因此在Create操作中不需要它。 ModelState说“ Id字段是必需的”,但我没有将其设置为。这里有自动的东西吗? 编辑-原因揭示 布拉德·威尔逊(Brad Wilson)通过保罗·斯佩兰萨(Paul Speranza)在他说的以下评论之一中回答了这个问题的原因(欢呼保罗): 您正在提供ID的值,只是不知道您的身份。它位于默认路由(“ {controller} / {action} / {id}”)的路由数据中,其默认值为空字符串,该字符串对int无效。使用操作参数上的[Bind]属性来排除ID。我的默认路由是:new {controller =“ Customer”,action =“ Edit”,id =“”} //参数默认值 编辑-更新模型技术 实际上,我通过使用TryUpdateModel和与之相关的exclude参数数组更改了再次执行此操作的方式。 [HttpPost] public ActionResult Add(Venue collection) { Venue venue = new Venue(); if (TryUpdateModel(venue, null, …

7
如何在ASP.MVC中指定多行Editor-For的列和行?
在ASP.MVC 3中,如何指定多行EditorFor(文本区域)的列和行?我正在使用[UIHint("MultilineText")],但找不到有关如何为文本区域添加属性的任何文档。 所需的HTML: <textarea cols="40" rows="10"></textarea> 我的MVC 3模型的相关部分: [UIHint("MultilineText")] public string Description { get; set; } 我的Razor cshtml的相关部分: <div class="editor-field"> @Html.EditorFor(model => model.Description) </div> 我所得到的看法来源: <div class="editor-field"> <textarea class="text-box multi-line" id="Description" name="Description"></textarea> </div> 如何设置行和列?

8
使用数据注释的条件必需属性
我有一个这样的课: public class Document { public int DocumentType{get;set;} [Required] public string Name{get;set;} [Required] public string Name2{get;set;} } 现在,如果我[Required]在Name和Name2属性上添加数据注释,则一切正常,如果Name或Name2为空,则验证将引发错误。 但我希望Name仅在DocumentType等于1Name2时才需要字段,而在等于2时才需要字段DocumentType。 public class Document { public int DocumentType{get;set;} [Required(Expression<Func<object, bool>>)] public string Name{get;set;} [Required(Expression<Func<object, bool>>)] public string Name2{get;set;} } 但我知道我做不到,这会导致错误。我该怎么办?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.