Modelinizdeki bir öğenin görüntü adı özniteliğini almanın en iyi yolu nedir? Her şey için LabelFor yardımcısını kullanan birçok insan görüyorum, ancak sadece verileri listelemek istesem bir etiket uygun değil. Sadece yazdırmak istiyorsam, bir paragraf belirtmek için İsim Niteliği almanın kolay bir yolu var mı?Asp.net MVC'de LabelFor Yardımcısını kullanmadan DisplayName Özniteliği Alın
cevap
<p>
<%= Html.Encode(
ModelMetadata.FromLambdaExpression<YourViewModel, string>(
x => x.SomeProperty, ViewData).DisplayName
) %>
<p>
Açıkçası bir yardımcı yazmak için iyi bir fikir her zaman olduğu spagetti kod önlemek için: o zaman
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:
<p>
<%: Html.GetDisplayName(x => x.SomeProperty) %>
</p>
Bence sen kullanmalısınız Sonuç türü olarak dizge, aksi halde kodlama mekanizmasını atlarsınız. Başka bir nokta, bazı durumlarda bir Dize olarak DisplayName'e ihtiyacınız olmasıdır (yani, bir WebGrid sınıfındaki sütunları doldurun).
Yeni varolan işlevini denemelisiniz:
<% Html.DisplayNameFor(m => m.YourProperty) %>
Razor: @ Html.DisplayNameFor (model => model.SomeProperty) –
Çok kabul edilen cevaptan daha basit. – VDWWD
- 1. ASP.NET MVC, doğrulama özniteliği
- 2. ASP.NET MVC'den Değer Alın Lambda Expression
- 3. JSP sayfasında ServletContext özniteliği alın
- 4. özniteliği dize değeri html'den alın
- 5. Nesne varsa, nesneden özniteliği alın
- 6. ASP.Net MVC, ViewPage <Dynamic> ve EditorFor/LabelFor
- 7. Neden MVC'de LabelFor kullanmalıyım?
- 8. asp.net vnext sınıf kitaplığında gerekli özniteliği kullanamazsınız
- 9. Firebase - no displayName kullanıcı için
- 10. ASP.NET Çekirdek Yetkilendirme özniteliği JWT
- 11. JavaScript İmleci kullanmadan önce kelime alın
- 12. I18n.t ile düğme yardımcısını gönderin
- 13. Asp.net metin kutusu için başlık özniteliği oluşturma
- 14. ASP.NET onay kutusuna değer özniteliği ekle
- 15. asp.net mvc geçerli dizini alın
- 16. NotNull özniteliği
- 17. "Take" ve "atla" kullanmadan önce Laravel'in Eloquent satır sayısını alın
- 18. Atılabilir konumda jquery ui yardımcısını düşüremiyor
- 19. Symfony'de, bir sınıftaki url_for yardımcısını nasıl kullanabilirim?
- 20. Rota yardımcısını raylarda dinamik olarak nasıl çağırırsınız?
- 21. Bir Meteor Yardımcısını Nasıl Reaktif Yaparım?
- 22. özniteliği
- 23. MVC3 WebGrid yardımcısını kullanarak html öznitelik adına tire ekleme
- 24. Web.config uygulamasından değer alın ASP.NET biçimlendirmesine ayarlamaSertings
- 25. Mesaj/Yönlendirme/ASP.NET MVC Desen alın
- 26. Yerel kullanıcı yolunu ASP.NET MVC ile alın
- 27. ASP.NET WebService'den öğeler alın ve dropDownList'e ekleyin
- 28. Sunucu makine adını ASP.NET MVC'de alın?
- 29. asp.net içinde dataSet tek bir değer alın
- 30. Bir ASP.Net sayfasından ekran görüntüsünü alın
Teşekkür ederim, Bu tam da artı daha sonra olduğum şey bu! –
Bunun için aşağıdaki 'using's 'a ihtiyacınız olduğunu unutmayın: using System.Linq; System.Linq.Expressions kullanarak ; –
Bunu yapmanın performans sonuçları nelerdir? Bunu tüm görünümlerde kullanma fikrini beğendim, ancak metni sadece .cshtml – Farinha