Вот код, сгенерированный из мастера «Добавить» Открыть в проекте ASP .NET MVC5:Бритва имеет три различных способа, чтобы установить «класс» атрибут
<div class="form-group">
@Html.LabelFor(model => model.City, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.City, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.City, "", new { @class = "text-danger" })
</div>
</div>
Как вы можете видеть, есть три различных способов, которыми Атрибут class используется для управления html. Почему эта аномалия? Кроме того, один предпочтительнее другого? С уважением.
Использование 'новый {@class = "текст-опасность"}' является типичной для большинства помощников, но 'EditorFor()' 'требует нового {htmlAttributes = new {@class = "form-control"}} '. До MVC5 вы не могли добавлять атрибуты html (за исключением передачи 'дополнительногоViewData' в пользовательский' EditorTemplate'. Я считаю, что '.. new {htmlAttributes = new {...}}' требовалось, чтобы избежать какого-либо потенциального конфликта с перегрузка, которая приняла 'дополнительныйViewData' –
@Peter вы можете увидеть какую-либо разницу в DOM? – Parth