2

私は自分のモデルに持っています:

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

そして私は使用しています

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

私からしてみれば。

ラベルが改行ではなく、そのまま <break> を表示しているため、これを修正する方法を提案してください。

4

2 に答える 2

8

標準ヘルパーLabelForのようにテキストを HTML エンコードしないカスタム ヘルパーを作成できます。LabelFor

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));
    }
}

次に、ビューでこのカスタム ヘルパーを使用します。

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

これで、表示名の HTML タグがエンコードなしでレンダリングされます。

[Display(Name = "Check to enter <br/> the Quantity of items")]
public bool IsLimitedQuantity { get; set; }
于 2012-05-07T07:55:45.857 に答える
0

Html デコードを使用すると役立つ場合があります。セキュリティ上の理由から、MVC はすべての値をエンコードします。

ASP.NET MVC ビューからデータベースに格納された HTML を表示する方法は?

于 2012-05-07T07:51:29.507 に答える