2012-09-13 53 views
2

如果我創建像這樣一個文本框:Asp.Net MVC4:確定的HtmlHelper的ID生成表單輸入

@Html.TextBoxFor(p => p.FirstName) 

有沒有辦法,我知道ID是什麼此輸入?其他控件或JavaScript的方式來引用此輸入?

我可以使用htmlAttributes參數標記它;不過,我希望有更直接的路線。

+0

對不起,我誤會了從我的第一個評論你的問題。 – Mansfield

回答

1

您可以使用此代碼

擴展

 public static MvcHtmlString GetFieldIdFor<TModel, TValue>(this HtmlHelper<TModel> html, 
      Expression<Func<TModel, TValue>> expres) 
     { 
      var htmlFieldName = ExpressionHelper.GetExpressionText(expres); 
      var inputFieldId = html.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldId(htmlFieldName); 
      return MvcHtmlString.Create(inputFieldId); 
     } 

頁嘗試

<textbox for="<%= Html.GetFieldIdFor(m => m.FirstName) %>">FirstName:</textbox > 

腳本

<script> $.function('<%= Html.GetFieldIdFor(m => m.FirstName) %>'); </script> 
+0

完美的作品;謝謝! – John