Как прочесть название вспомогательного html-элемента - PullRequest
6 голосов
/ 01 апреля 2011

Есть ли в mvc возможность прочитать имя, которое будет присвоено элементу управления html?

Например, я использую этот код:

<div>
    @Html.LabelFor(x => x.Name)
    @Html.TextBoxFor(x => x.Name)
    @Html.ValidationMessageFor(x => x.Name)
    @Html.HiddenFor(x => x.Id)

    <div>
        I want to display here a TextBox name
    </div>

</div>

И я хочу получить имя входного имени. Этот код является фрагментом частичного просмотра. Имя элемента выглядит как children [1] .Name

Ответы [ 2 ]

13 голосов
/ 01 апреля 2011

@Html.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName ("Name") Или вы можете использовать метод расширения для универсального HtmlHelper, чтобы использовать его с лямбда-выражениями

public static string GetFullHtmlFieldName<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression)
{
    return htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(ExpressionHelper.GetExpressionText(expression));
}

Использование будет (Html.GetFullHtmlFieldName(x => x.Name)

12 голосов
/ 18 сентября 2013

Я предполагаю, что это только в более новых версиях MVC, но вы могли бы просто использовать:

@Html.NameFor(x => x.Name)

Документация: http://msdn.microsoft.com/en-us/library/hh833703(v=vs.108).aspx

...