如何获得输入的名称,如mvc's html's HiddenFor
本文关键字:HiddenFor html 输入 何获得 mvc | 更新日期: 2023-09-27 18:02:13
我想写一个类似于HiddenFor的HtmlHelper扩展方法。不同之处在于,我想要控制进入value属性的内容,并附加一个额外的属性。我想我可以看看MVC的源代码,因为它是开源的。但是,除非我是盲人,否则似乎强类型的助手方法(如HiddenFor、TextBoxFor等)不包括在源代码中。
方法签名使用Expression> Expression。
给定表达式,我如何获得与HiddenFor相同的name属性值?
但是,除非我看不清,强类型帮助器似乎方法,如HiddenFor, TextBoxFor等,不包括在源代码
所有内容都包含在源代码中,只需下载并查看InputExtensions.cs
。
要获取名称:
public static MvcHtmlString FooBarFor<TModel, TProperty>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression
)
{
var name = ExpressionHelper.GetExpressionText(expression);
var fullHtmlFieldName = htmlHelper
.ViewContext
.ViewData
.TemplateInfo
.GetFullHtmlFieldName(name);
// do something with the name
...
}
ModelMetadata metadata = ModelMetadata。FromLambdaExpression(表情,htmlHelper.ViewData)