gpt4 book ai didi

asp.net-mvc - 如何在 MVC 中使用 LabelFor 插入换行符

转载 作者:行者123 更新时间:2023-12-02 07:06:57 26 4
gpt4 key购买 nike

我的模型中有:

[Display(Name = "Check to enter <break> the Quantity of items")]
public bool IsLimitedQuantity { get; set; }

我正在使用

@Html.LabelFor(shop => shop.IsLimitedQuantity) 

在我看来。

请建议我如何解决这个问题,因为标签只是按原样显示 ,而不是换行。

最佳答案

您可以编写一个自定义的 LabelFor 帮助器,它不像标准的 LabelFor 帮助器那样对文本进行 HTML 编码:

public static class LabelExtensions
{
public static IHtmlString UnencodedLabelFor<TModel, TProperty>(this HtmlHelper<TModel> html, Expression<Func<TModel, TProperty>> expression)
{
var metadata = ModelMetadata.FromLambdaExpression(expression, html.ViewData);
var htmlFieldName = ExpressionHelper.GetExpressionText(expression);
var text = (metadata.DisplayName ?? (metadata.PropertyName ?? htmlFieldName.Split(new char[] { '.' }).Last<string>()));
if (string.IsNullOrEmpty(text))
{
return MvcHtmlString.Empty;
}
var tagBuilder = new TagBuilder("label");
tagBuilder.Attributes.Add("for", TagBuilder.CreateSanitizedId(html.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(htmlFieldName)));
tagBuilder.InnerHtml = text;
return new HtmlString(tagBuilder.ToString(TagRenderMode.Normal));
}
}

然后在 View 中使用这个自定义助手:

@Html.UnencodedLabelFor(x => x.IsLimitedQuantity)

现在显示名称中的 HTML 标签将在不编码的情况下呈现:

[Display(Name = "Check to enter <br/> the Quantity of items")]
public bool IsLimitedQuantity { get; set; }

关于asp.net-mvc - 如何在 MVC 中使用 LabelFor 插入换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10478454/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com