Asp.Net MVC4:确定HtmlHelper生成的表单输入的ID

时间:2012-09-13 19:22:05

标签: razor asp.net-mvc-4

如果我创建了这样的文本框:

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

有没有办法让我知道这个输入的ID是什么?其他控件或javascript引用此输入的方法?

我可以使用htmlAttributes参数标记它;但是,我希望有更直接的路线。

1 个答案:

答案 0 :(得分: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>