Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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
Asp.net mvc 2 的Asp.net MVC标签_Asp.net Mvc 2 - Fatal编程技术网

Asp.net mvc 2 的Asp.net MVC标签

Asp.net mvc 2 的Asp.net MVC标签,asp.net-mvc-2,Asp.net Mvc 2,我有以下几点 名字 m、 Customer.Name.Forename)%%> 问题是,它被渲染为 名字 不是我想要的ofc 我想要一个扩展来正确呈现标签(即,使用具有输入id值的for=”“属性),在我开始编写自己的扩展之前,MVC 2中是否有任何东西可以本机执行此操作?m.Customer.Name.Forename)%%> m、 Customer.Name.Forename)%%> 以下将允许覆盖默认显示名称,使用以下选项的替代方法是使用[DisplayName]属性破坏您的模型 用法

我有以下几点

名字
m、 Customer.Name.Forename)%%>
问题是,它被渲染为

名字
不是我想要的ofc

我想要一个扩展来正确呈现标签(即,使用具有输入id值的for=”“属性),在我开始编写自己的扩展之前,MVC 2中是否有任何东西可以本机执行此操作?

m.Customer.Name.Forename)%%>
m、 Customer.Name.Forename)%%>

以下将允许覆盖默认显示名称,使用以下选项的替代方法是使用
[DisplayName]
属性破坏您的模型

用法

m.Customer.Name.Forename,“名字”)%%>
代码

namespace System.Web.Mvc.Html
{
公共静态类标签扩展
{
公共静态MvcHtmlString LabelFor(此HtmlHelper html、表达式、字符串显示名)
{
返回LabelHelper(html、ModelMetadata.FromLambdaExpression(表达式、html.ViewData)、ExpressionHelper.GetExpressionText(表达式)、displayName);
}
内部静态MvcHtmlString LabelHelper(HtmlHelper html、ModelMetadata元数据、字符串htmlFieldName、字符串displayName)
{
string str=displayName??metadata.displayName??(metadata.PropertyName??htmlFieldName.Split(新字符[]{.'}).Last());
if(string.IsNullOrEmpty(str))
{
返回MvcHtmlString.Empty;
}
标记生成器=新标记生成器(“标签”);
Add(“for”,html.ViewContext.ViewData.TemplateInfo.getFullHtmlFieldDid(htmlFieldName));
builder.SetInnerText(str);
返回MvcHtmlString.Create(builder.ToString(TagRenderMode.Normal));
}
}
}

@Alex哦,是的,这是一个糟糕的主意,干得好,4年半后我更清楚了。