yerde bu kod koyun: ASPX görünümünde Sonra
using System;
using System.Linq.Expressions;
using System.Web.Mvc;
namespace MvcLibrary.Extensions
{
public static class HtmlExtensions
{
public static MvcHtmlString FieldIdFor<TModel, TValue>(this HtmlHelper<TModel> html,
Expression<Func<TModel, TValue>> expression)
{
string htmlFieldName = ExpressionHelper.GetExpressionText(expression);
string inputFieldId = html.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldId(htmlFieldName);
return MvcHtmlString.Create(inputFieldId);
}
}
}
:
<label for="<%= Html.FieldIdFor(m => m.EmailAddress) %>">E-mail address:</label>
<%= Html.TextBoxFor(m => m.EmailAddress) %>
Ayrıca JavaScript kullanabilirsiniz olarak aramalar bunun için bir uzantısı yöntemi de vardır kontrolün kimliğini önceden bilmezsiniz ve ona karşı çalışmak için bazı JavaScript kodları gerekebilir:
<script> $.CoolJQueryFunction('<%= Html.FieldIdFor(m => m.EmailAddress) %>'); </script>
Burada belirtilen bir kişinin LabelFor HTML yardımcı yöntemi, kullanmak istediğiniz gerçek metin etiketini belirlemenize izin vermez, IMHO ile etiket metnini ayarlamak için ViewModels'inizi nitelikler ile dekore etmeniz gerekir. Bazı ASPX görünüm bölümünün kendisinde, bazı etki alanı/görünüm modellerinde görünmüyor. Yine de bazı insanlar benimle aynı fikirde olmayacaklar.
kişinin blog yayınlarına ilişkin bağlantıların yazabilmek için kurallar Emin değilim, ama bu kesin konuyla ilgili bir blog yayınlanmıştır: http://www.dominicpettifer.co.uk/Blog/37/strongly-typed--label--elements-in-asp-net-mvc-2
(ingilizcem çok iyi değildir) Biliyorum, ama bazı insanlar doğru anlayamıyorum! Tek ihtiyacım olan bu şey ... Çok teşekkürler dostum! attributies ile alan modeli sınıfları Dekorasyon benim için iyi bir pratice değil, sana katılıyorum! –
Bu çerçevenin bir parçası olmalıdır. – pbz
* oldukça * kullanıcı kontrolleri içinde çalışmıyorum (yani .ascx) –