Просто напишите обычный элемент <label>
в простом HTML:
<label>My Label:</label>
Если вы хотите вывести атрибут for=""
и точно отобразить имя элемента управления, используйте этот метод расширения:
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) %>
Другие посты охватывают разные подходы, все они одинаково действительны, и то, к чему вы обращаетесь, является вопросом личных предпочтений.Лично я предпочитаю писать <label>
в виде простого HTML, так как это дает дизайнерам больше гибкости при изменении разметки, добавлении дополнительных атрибутов, таких как классы CSS и т. Д. Также я считаю, что текст метки является проблемой представления и не должен быть оформлен в классе ViewModel, но это только мое личное мнение / предпочтение, я знаю, что некоторые люди здесь не согласятся со мной, и это нормально: -)