繁体   English   中英

为什么 html.textbox 不生成 data-val 属性而 html.textboxFor 呢?

[英]why doesn't html.textbox generate data-val attributes while html.textboxFor does?

我在 razor 页面中有一个表单,其中我使用 jquery、jquery 不显眼和 jquery 验证以及数据注释来实现客户端验证以验证 model。

使用强类型文本框,我获得了使用 ValidationMessage() 方法显示错误所需的数据值属性。

但是,当我使用松散类型的文本框时,不会生成 data-val 属性,这是为什么?

它适用于 Html.Textbox() 很重要,因为我使用更复杂的数据结构并且需要为列表中的每个元素定义特定名称。

松散键入的文本框和 validationMessage:

在此处输入图像描述

生成 html:

在此处输入图像描述

强类型文本框和验证消息:

在此处输入图像描述

生成 html:

在此处输入图像描述

我们可以在这里清楚地看到 data-val 属性

name 字段是这样构建的(其中 key 是列表中每个项目的 guid uniqe):

在此处输入图像描述

为什么 data-val 属性不会出现在松散键入的文本框中?

我想我知道答案,因为它是强类型的,我们在 model 中有关于数据注释的信息,而 loosley 类型只是从名称生成 html。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM