Большинство вспомогательных методов MVC имеют вариант XXXFor.Они предназначены для использования в сочетании с конкретным модельным классом.Идея состоит в том, чтобы позволить помощнику получить соответствующий атрибут «name» для элемента управления вводом формы на основе свойства, указанного в лямбда-выражении.Это означает, что вы можете устранить «магические строки», которые в противном случае вам пришлось бы использовать для сопоставления свойств модели с вашими представлениями.Например:
Html.Hidden("Name", "Value")
В результате вы получите:
<input id="Name" name="Name" type="hidden" value="Value">
В вашем контроллере вы можете выполнить действие, например:
[HttpPost]
public ActionResult MyAction(MyModel model)
{
}
И модель, подобную:
public class MyModel
{
public string Name { get; set; }
}
Необработанный Html.Hidden
, который мы использовали выше, будет соотнесен со свойством Name
в модели.Однако, несколько неприятно, что значение «Имя» для свойства должно быть указано с помощью строки («Имя»).Если вы переименуете свойство Name
в модели, ваш код сломается, и ошибку будет несколько сложно определить.С другой стороны, если вы используете HiddenFor
, вы защищены от этого:
Html.HiddenFor(x => x.Name, "Value");
Теперь, если вы переименуете свойство Name
, вы получите явную ошибку времени выполнения, указывающую, что свойство можетне может быть найдено.Кроме того, вы получаете другие преимущества статического анализа, такие как раскрывающийся список членов после ввода x.
.