Строго типизированные HTML-хелперы. Кроме того, они теперь возвращают не String, а MvcHtmlString.
Updated:
Вот список:
- DisplayFor()
- DisplayTextFor()
- EditorFor()
- CheckBoxFor()
- HiddenFor()
- PasswordFor()
- RadioButtonFor()
- TextBoxFor()
- LabelFor()
- DropDownListFor()
- ListBoxFor()
- TemplateFor()
- TextAreaFor()
- ValidationMessageFor()
Как видно, все хелперы заканчиваются суффиксом For (хотя это и не является обязательным условием). Все они принимают в качестве аргумента объект типа Expression<Func<TModel, TValue>>
. Т.е. лямбда-выражение, где TModel обычно представляет тип, которым строго типизирован View. Кроме того, некоторые хелперы принимают еще аргументы, специфичные для конкретного элемента (например IEnumerable<SelectListItem>
для DropDownListFor()
)
Использование довольно просто:
Есть класс:
public class RegisterModel
{
[DisplayName("User name")]
public string UserName { get; set; }
[DisplayName("Email address")]
public string Email { get; set; }
[DisplayName("Password")]
public string Password { get; set; }
[DisplayName("Confirm password")]
public string ConfirmPassword { get; set; }
}
Далее в строго типизированном этим классом виде пишем:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewPage<MvcApplication2.Models.RegisterModel>" %>
...
<%= Html.LabelFor(m => m.UserName) %>
<%= Html.TextBoxFor(m => m.UserName) %>
<%= Html.ValidationMessageFor(m => m.UserName) %>
Пример взят из создаваемого по-умолчанию проекта ASP.NET MVC 2 (с некоторыми упрощениями)