gpt4 book ai didi

jquery - 哪个数据注释属性创建此验证属性?

转载 作者:行者123 更新时间:2023-12-01 03:32:33 24 4
gpt4 key购买 nike

假设我们有一个像这样的模型:

public class TheViewModel
{
public string DateTime? Image_Date { get; set; }
}

它被添加到 Razor View 中,如下所示:

Html.TextBoxFor(model => model.Image_Date)

然后在浏览器中呈现以下内容:

<input data-val="true" data-val-date="The field Image_Date must be a date." id="Image_Date" name="Image_Date" type="text" value="" />

属性data-val-date是我感兴趣的。它显然是由 MVC 的“不引人注目的”jQuery 验证集成注入(inject)的。

那么,什么数据注释会覆盖 HTML 属性中的措辞?

例如,[Required(ErrorMessage="This field is required!")]将覆盖标准“字段 {0} 为必填项”。消息。

<小时/>

失败的尝试:

  1. [DataType(DataType.Date, ErrorMessage = "Must be a valid date.")]似乎对客户端验证没有做任何事情。

  2. [DisplayName("...")]更改模式的通配符部分,但显然不会影响模式本身。

最佳答案

data-val-date 属性是由框架添加的,因为该属性是 DateTime? 类型。它是 HtmlHelper 类的 GetUnobtrusiveValidationAttributes() 方法,它实际上生成所有 data-val-* 属性。

请注意,[DataType(DataType.Date, "...")]EditorFor() 方法用于添加类型的属性="date" 属性依次生成浏览器 HTML-5 日期选择器(如果浏览器支持)并且与客户端验证无关。

默认错误消息在资源文件中定义,您可以创建自己的错误消息来覆盖默认值。

App_GlobalResources文件夹中创建(例如)MyResources.resx(您可能需要创建此文件夹)并添加以下FieldMustBeDate key 和您的消息(默认消息如下所示)

FieldMustBeDate : The field {0} must be a date

并在Global.asaxApplication_Start()中添加以下内容

ClientDataTypeModelValidatorProvider.ResourceClassKey = "MyResources";
DefaultModelBinder.ResourceClassKey = "MyResources";

请注意,您还可以使用 PropertyValueRequired 键覆盖 [Required] 属性的默认错误消息

关于jquery - 哪个数据注释属性创建此验证属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48349290/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com