从模型中的嵌套对象获取 MVC4/Razor 中 JavaScript 的元素 id

Posted

技术标签:

【中文标题】从模型中的嵌套对象获取 MVC4/Razor 中 JavaScript 的元素 id【英文标题】:Get id of element for JavaScript in MVC4/Razor from nested object in model 【发布时间】:2013-10-17 16:09:15 【问题描述】:

如果我这样定义一个文本框:

@html.TextBoxFor(m => m.Contact.HomePhone)

它将生成一个带有id Contact_HomePhoneinput 元素。

是否有可能在 javascript 中得到这个 id 而无需硬编码 Contact_HomePhone

这是我在 JavaScript 中动态需要 id 的示例:

$("#Contact_HomePhone").mask("(999) 999-9999");

(我知道如何使用反射获取属性名称,但仍然需要硬编码 _ 以连接 ContactHomePhone。)

【问题讨论】:

【参考方案1】:

试试这个方法,使用Html.IdFor可以得到helper生成的id。

$('#@Html.IdFor(m => m.Contact.HomePhone)').mask("(999) 999-9999");

只需在它前面加上 # 就可以让 jquery 获取它。

但是您也可以使用类选择器绑定插件,例如,如果您有许多这样的电话字段,您可以为所有这些文本框提供一个公共类并使用类选择器将掩码插件绑定到它,这将避免确定id 使用上述方法并使用通用选择器。

  @Html.TextBoxFor(m => m.Contact.HomePhone, null, new  @class = "phoneField");

而且不用担心 id 你可以绑定它们。

 $('.phoneField').mask("(999) 999-9999");

【讨论】:

以上是关于从模型中的嵌套对象获取 MVC4/Razor 中 JavaScript 的元素 id的主要内容,如果未能解决你的问题,请参考以下文章

在 MVC4 razor 中使用“远程”验证处理多个提交按钮

如何在 mvc4 razor 中显示验证消息

[转载].NET MVC4 Razor 视图预编译

C# MVC4 Razor 部分视图 - 切换视图时刷新整页?

ASP.NET MVC4 Razor

MongoDB在对象数组中获取嵌套在对象数组中的单个对象