How to get the HTML id generated by asp.net MVC EditorFor
Solution 1:
ASP.NET MVC 4 has Html.IdFor() built in that can return this:
@Html.IdFor(m => m.User.Surname)
Solution 2:
See this question: get the generated clientid for a form field, this is my answer:
I use this helper:
public static partial class HtmlExtensions
{
public static MvcHtmlString ClientIdFor<TModel, TProperty>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression)
{
return MvcHtmlString.Create(
htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldId(
ExpressionHelper.GetExpressionText(expression)));
}
}
Use it just as you would any other helper: @Html.ClientIdFor(model=>model.client.email)