C# 如何获取输入的名称,如mvc';s html';藏身处
我想编写一个类似于HiddenFor的HtmlHelper扩展方法。区别在于,我想要控制进入value属性的内容以及附加属性。我想我可以看看MVC的源代码,看看它是如何开源的。但是,除非我是盲人,否则源代码中似乎不包含强类型的帮助器方法,如HiddenFor、TextBoxFor等 方法签名使用Expression>Expression 给定表达式,如何获得与HiddenFor相同的name属性值 但是,除非我是盲人,否则强类型助手 诸如HiddenFor、TextBoxFor等方法不包括在 源代码 所有内容都包含在源代码中,仅此而已,请查看C# 如何获取输入的名称,如mvc';s html';藏身处,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,我想编写一个类似于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
...
}
publicstaticmvchtmlstring FooBarFor(
这个HtmlHelper HtmlHelper,
表情
)
{
var name=ExpressionHelper.GetExpressionText(表达式);
var fullHtmlFieldName=htmlHelper
.ViewContext
.ViewData
.TemplateInfo
.GetFullHtmlFieldName(名称);
//用这个名字做点什么
...
}
ModelMetadata metadata=ModelMetadata.FromLambdaExpression(表达式,htmlHelper.ViewData)真奇怪。你说得对。如果您下载它,它会出现在源代码中,但如果您在codeplex上浏览它,它就不会出现在源代码中@贝尔先生,codeplex浏览源代码很旧,你不应该依赖它。知道这一点当然很好。我发现了其他的差异,只是假设整个codeplex源代码都是旧的。我从未想到下载和浏览功能会有所不同