Asp.net mvc 2 引用一个控件';使用TextBoxFor()创建的s ID

Asp.net mvc 2 引用一个控件';使用TextBoxFor()创建的s ID,asp.net-mvc-2,Asp.net Mvc 2,我喜欢ASP.NETMVC,跟上发布/文档有时会很棘手,所以也许我只是没有得到一些东西。。。我想使用TextBoxFor(),使用LabelFor()等也可以,所有的神奇都发生在我身上 但是如果我创造 <%=Html.TextBoxFor(x => x.LastName) %> 我知道我可以在这种情况下解决这个问题,然后手动将其破解,但有没有更简洁的方法?我认为您可以执行以下操作: $('#LastName').(...) <%=Html.TextBoxFor(x

我喜欢ASP.NETMVC,跟上发布/文档有时会很棘手,所以也许我只是没有得到一些东西。。。我想使用TextBoxFor(),使用LabelFor()等也可以,所有的神奇都发生在我身上

但是如果我创造

 <%=Html.TextBoxFor(x => x.LastName) %>

我知道我可以在这种情况下解决这个问题,然后手动将其破解,但有没有更简洁的方法?

我认为您可以执行以下操作:

 $('#LastName').(...)
<%=Html.TextBoxFor(x => x.LastName, new { id = "LastName" })%>
x.LastName,新的{id=“LastName”})%>

有趣的是,Html.Textbox()代码似乎会生成一个id,复制以字母(a-z)开头的任何控件的名称。然而,如果你的“名字”以一个数字开头,那就不麻烦了


这是一个神奇的“功能”,在过去的一个小时左右,它让我感到悲伤。

默认情况下,您的控件id是您的模型绑定值,您也可以使用firebug。选择该控件并获取默认控件id。

因为MVC4有一种内置的方法来实现它-

使用它的方法:

@Html.IdFor(m => m.Filters.Occurred.From)
结果是

Filters_Occurred_From

这不管用吗?当我尝试它时,它似乎生成了我希望它被命名的ID。当您在页面上查看HTML源代码时,您的
TextBoxFor()
输出是什么?这确实有效,并生成您期望的ID,但我认为如果框架能够为文本框计算出它,它将能够在其他地方计算出它。。。当ID被生成到数组中时特别有用,因此您最终会得到一个类似“Websites\u 0\u Url”的ID。手动方式有效,我只是认为MVC必须为我了解这一点,避免我犯错误;)这在大多数情况下都会起作用,我想我脑子里的ID和名字之间的联系太牢固了,当然我可以修改它!我认为,当MVC为一个数组计算出控制ID并最终得到等时,它会出现问题。另一种方法是使用MvcContrib,它引入了IdFor方法,允许您执行x.LastName)%>这很神奇!与手动生成字段标识符不同,我建议使用Colin的方法,或者如果您不想依赖MVCContrib的话