SORU
7 EKİM 2010, PERŞEMBE


ASP.NET MVC LabelFor Yardımcı kullanmadan görünen isim Özniteliği olsun

Bu model bir öğenin adı özniteliği almak için en iyi yolu nedir? İnsanlar her şey için LabelFor yardımcı kullanarak bir sürü görmek, ama bir etiket varsa veri listesi için uygun değil. Kolay bir yolu varsa ben sadece dışarı yazdırmak istiyorsanız Adı Özniteliği, bir paragraf demek var mı?

CEVAP
7 EKİM 2010, PERŞEMBE


<p>
    <%= Html.Encode(
        ModelMetadata.FromLambdaExpression<YourViewModel, string>(
            x => x.SomeProperty, ViewData).DisplayName
    ) %>
<p>

Her zaman bir yardımcı yazmak için iyi bir fikirdir spagetti kod önlemek için belli ki:

public static class HtmlExtensions
{
    public static MvcHtmlString GetDisplayName<TModel, TProperty>(
        this HtmlHelper<TModel> htmlHelper, 
        Expression<Func<TModel, TProperty>> expression
    )
    {
        var metaData = ModelMetadata.FromLambdaExpression<TModel, TProperty>(expression, htmlHelper.ViewData);
        string value = metaData.DisplayName ?? (metaData.PropertyName ?? ExpressionHelper.GetExpressionText(expression));
        return MvcHtmlString.Create(value);
    }
}

Ve sonra:

<p>
    <%: Html.GetDisplayName(x => x.SomeProperty) %>
</p>

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • george sarintzotis

    george sarin

    2 Aralık 2007
  • Jonathan Morrison

    Jonathan Mor

    24 Mart 2010
  • xiaoyu85

    xiaoyu85

    20 ŞUBAT 2010