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

Razor Asp.Net MVC4:确定HtmlHelper生成表单输入的Id,razor,asp.net-mvc-4,Razor,Asp.net Mvc 4,如果我创建了这样一个文本框: @Html.TextBoxFor(p => p.FirstName) 有没有办法让我知道这个输入的Id是什么?其他控件或javascript引用此输入的方法 我可以使用htmlAttributes参数标记它;不过,我希望有一条更直接的路线。您可以尝试使用此代码 延伸 public static MvcHtmlString GetFieldIdFor<TModel, TValue>(this HtmlHelper<TModel

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

@Html.TextBoxFor(p => p.FirstName)
有没有办法让我知道这个输入的Id是什么?其他控件或javascript引用此输入的方法


我可以使用htmlAttributes参数标记它;不过,我希望有一条更直接的路线。

您可以尝试使用此代码

延伸

        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); 
        }
public static MvcHtmlString GetFieldIdFor(此HtmlHelper html,
表达式(expres)
{ 
var htmlFieldName=ExpressionHelper.GetExpressionText(expres);
var inputFieldId=html.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldId(htmlFieldName);
返回MvcHtmlString.Create(inputFieldId);
}
页面

FirstName:
剧本

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

对不起,我第一次评论时误解了你的问题。
<script> $.function('<%= Html.GetFieldIdFor(m => m.FirstName) %>'); </script>