Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取输入的名称,如mvc';s html';藏身处_C#_Asp.net Mvc 3 - Fatal编程技术网

C# 如何获取输入的名称,如mvc';s html';藏身处

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等方法不包括在 源

我想编写一个类似于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源代码都是旧的。我从未想到下载和浏览功能会有所不同