Reference a control's ID created with TextBoxFor()

喜你入骨 提交于 2019-12-22 05:00:24

问题


I am loving ASP.NET MVC, keeping up with the releases/docs can sometimes be tricky, so maybe I'm just not getting something... I want to use a TextBoxFor(), and working with LabelFor() etc. is fine, all the magic happens for me.

But if I create...

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

And wanted to do something nice with jQuery, how would I get the ID of the control that was created? I could add a CSS class and use that to attach my jQuery, but for something I am doing I would like the ID... so I could do something like:

 $('#LastName').(...)

I know I could work it out in this case, and hack it in manually, but is there a neater way?


回答1:


Since MVC4 there is a built-in way to do it - @Html.IdFor().

Here is a sample of using it:

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

and the result is like

Filters_Occurred_From



回答2:


I think you can do something like:

<%=Html.TextBoxFor(x => x.LastName, new { id = "LastName" })%>

Overloads of TextBoxFor




回答3:


As a point of interest it appears that the Html.Textbox() code will generate an id, duplicating the control name for anything that begins with a letter (a-z). If however your 'name' begins with a number it will simply not bother.

This is a fantastic 'feature' that has caused me grief for the past hour or so.




回答4:


By default your control id is your model binding value, You can also Just use firebug. select the control and get by default control id.



来源:https://stackoverflow.com/questions/2510076/reference-a-controls-id-created-with-textboxfor

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!