Как я могу добавить атрибут класса в HTML-элемент, созданный HTML-помощниками MVC?
ASP.NET MVC может генерировать HTML-элементы с помощью HTML-помощников, например @Html.ActionLink()
,@Html.BeginForm()
и так далее.
Я знаю, что могу указать атрибуты формы, создав анонимный объект и передайте этот объект для (четвертого в данном случае), где задание id
для этого элемента:
Html.BeginForm("Foo", "Bar", FormMethod.Post, new { id = "MyForm"})
а как же ? Очевидно, что это не работает:
Html.BeginForm("Foo", "Bar", FormMethod.Post, new { class = "myclass"})
как это просто бросает случайный синтаксис ошибки при запросе моего представления, потому что он ожидает что-то еще после встречи с ключевым словом C#class
.
Я тоже пробовал:
new { _class = "myclass"}
и
new { class_ = "myclass"}
но они тоже не работали, так как подчеркивания заменяются тире.
Я знаю, что я могу также написать элементы HTML вручную или обернуть форму внутри <div class="myClass">
, но мне все равно было бы интересно узнать, как это должно быть сделано.
2 ответа:
для того, чтобы создать анонимный тип (или тип) с имущества, имеет зарезервированное ключевое слово как его имя в C#, вы можете добавить имя свойства знак,
@
:Html.BeginForm("Foo", "Bar", FormMethod.Post, new { @class = "myclass"})
для VB.NET этот синтаксис будет выполнено с помощью точки,
.
, который в этом языке является синтаксисом по умолчанию для все анонимные типы:Html.BeginForm("Foo", "Bar", FormMethod.Post, new with { .class = "myclass" })
текущая передовая практика в разработке CSS заключается в создании более общих селекторов с модификаторами, которые могут быть применены как можно шире на всем веб-сайте. Я бы попытался избежать определения отдельных стилей для отдельных элементов страницы.
Если цель CSS класса на
<form/>
элемент для управления стилем элементов в форме, вы можете добавить атрибут класса существующий<fieldset/>
элемент, который инкапсулирует любую форму по умолчанию в создаваемых веб-страницах by ASP.NET MVC. Класс CSS в форме редко требуется.