如何读取html帮助元素的名称

nos*_*bor 7 c# asp.net-mvc html-helper razor asp.net-mvc-3

在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>
Run Code Online (Sandbox Code Playgroud)

我想得到一个输入名称的名称.此代码是局部视图的片段.元素名称看起来像children [1] .Name

arc*_*hil 14

@ Html.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName("Name")或者你可以使用泛型HtmlHelper的扩展方法将它与Lambda表达式一起使用

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

用途是 (Html.GetFullHtmlFieldName(x => x.Name)


Nic*_*tby 13

我猜这只是在较新版本的MVC中,但你可能只是使用:

@Html.NameFor(x => x.Name)
Run Code Online (Sandbox Code Playgroud)

文档:http://msdn.microsoft.com/en-us/library/hh833703(v = vs.108).aspx