首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET MVC EditorForModel ID命名

ASP.NET MVC EditorForModel ID命名
EN

Stack Overflow用户
提问于 2018-06-22 21:06:47
回答 1查看 50关注 0票数 1

在ASP.NET MVC5中,我使用EditorForModelEditorTemplate在一个表中显示来自我的模型的IEnumerable数据,用户可以对其进行编辑。ASP.NET MVC似乎将控件的id字段命名为'<row number>.<model property>'格式。

例如,表的第4行上的复选框控件@Html.CheckBoxFor(x => Model.Bold...的id为[3].BoldText

当我尝试通过选择器$('#[3].BoldText')使用JQuery来获取该控件的值时,JQuery抛出了一个我怀疑是由于[或句点导致的错误。有没有办法使用EditorForModel设置命名格式?

或者,有没有一种方法可以在Javascript中使用该格式的id获取该复选框的值?

我试过以下几种方法,都不管用。

代码语言:javascript
复制
$('#[3].BoldText')
$("input[id='[3].BoldText']")
document.getElementById('[3].BoldText')
EN

回答 1

Stack Overflow用户

发布于 2018-06-22 21:28:49

您的代码不会生成任何id属性--您看到的是name属性。默认情况下,HtmlHelpersname中的.[]字符替换为_ (下划线)。但由于符合HTML4规范,这将是无效的,因此省略了id属性。

有关详细说明,请参阅Razor: If model is List<> then @Html.LabelFor creates empty “for” field

您可以更改选择器以使用name属性

代码语言:javascript
复制
$("input[name='[3].BoldText']")

或者,使用包含集合属性的视图模型以及EditorTemplatefor循环来生成html,使您的html看起来像这样(假设属性名为Items)

代码语言:javascript
复制
<input type="checkbox" name="Items[0].BoldText" id="Items_0__BoldText" ... />

这样您就可以使用id选择器

代码语言:javascript
复制
$('#Items_0__BoldText')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50988628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档