ASP MVC强力输入没有剃须刀的HTML

时间:2012-05-13 18:10:35

标签: asp.net-mvc

我希望能够做到这样的事情:

<input name=@Model.SomeProperty (as the actual property name and not its value)  value=@Model.SomeProperty type="text/>

这样模型绑定仍然有效,但我不需要使用Razor助手。

1 个答案:

答案 0 :(得分:1)

您可以添加一个返回您的DisplayName的帮助方法:

public static MvcHtmlString GetPropertyName<TModel, TProperty>( this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression )
        {
            var metaData = ModelMetadata.FromLambdaExpression<TModel, TProperty>(expression, htmlHelper.ViewData);
            string value = metaData.PropertyName ?? expressionHelper.GetExpressionText(expression);
            return MvcHtmlString.Create(value);
        }

然后你只需使用:@ Html.GetPropertyName(m =&gt; m.SomeProperty)