Второй аргумент - htmlAttributes
, который можно использовать для добавления дополнительных атрибутов в HTML, созданный помощником (@ Html.TextBoxFor - помощник HTML).
сгенерированный код для вашего примера будет вдоль линий:
@Html.TextBoxFor(m => m.FirstName, new { @placeholder = "First name"})
<input type="text" name="FirstName" placeholder="First name" />
Если вы хотите, вы можете добавить дополнительные атрибуты, и они также будут добавлены к созданному тегу:
@Html.TextBoxFor(m => m.FirstName, new { placeholder = "First name", @class="my_text_box_class" })
<input type="text" name="FirstName" placeholder="First name" class="my_text_box_class" />
Кроме того, можно переопределить значение текстового поля с помощью Value
(верхнего регистра V!):
@Html.TextBoxFor(m => m.FirstName, new { placeholder = "First name", Value="John Johnson"})
<input type="text" name="FirstName" placeholder="First name" value="John Johnson" />
Причина для символа @ предназначена для тех случаев, когда вам нужен атрибут, названный в точности как C# reserved word. класс, частный, пространство имен и т. д. Это способ заставить интерпретатор C# останавливать его интерпретацию, поскольку это означает C#. Символ @ требуется только для этих зарезервированных слов.
Второй аргумент - это объект для передачи дополнительных атрибутов HTML. В этом случае вы хотите добавить атрибут 'placeholder' HTML к вводу. Значок @ необходим, если вы используете зарезервированное слово (ключевое слово). В противном случае вы получите ошибку компиляции. Хотя «placeholder» не является ключевым словом, поэтому в этом случае он не нужен. – Styxxy