ASP.NET MVC Заполняет атрибуты Html с помощью model

#html #asp.net-mvc

#HTML #asp.net-mvc

Вопрос:

Вместо того, чтобы жестко указывать «disabled =»true»» в элементе TextBoxFor, я хочу, чтобы он был извлечен из модели. Свойство модели (Model.InvoicedApprovedBy) будет установлено значение «» (включено) или «отключено =»отключено» (отключено)

 <%= Html.TextBoxFor(m => m.WorkingModel.Detail.ApprovedBy, new { id = "InvoiceApprovedBy", disabled="true", style = "width: 203px; " })%>
 

Я хочу сделать что-то вроде этого:

 <%= Html.TextBoxFor(m => m.WorkingModel.Detail.ApprovedBy, new { id = "InvoiceApprovedBy", Model.InvoicedApprovedBy, style = "width: 203px; " })%>
 

Он устанавливает html-атрибут с именем «InvoicedApprovedBy» вместо того, чтобы просто помещать в него строку «disabled =»disabled»». Как мне заставить его разместить строку?

Ответ №1:

  <%= Html.TextBoxFor(m => m.WorkingModel.Detail.ApprovedBy, new { id = "InvoiceApprovedBy",  disabled = Model.InvoicedApprovedBy, style = "width: 203px; " })%>
 

Вам не нужно будет устанавливать для свойства модели значение «отключено = отключено», просто «отключено».

Комментарии:

1. В этом случае элемент всегда будет отключен. Я также хочу иметь возможность не иметь «disabled =».

2. Вам придется стать уродливым: <тип ввода=»текст» @(Модель. Отключено ? «disabled= отключено» : «») /> для этого вам понадобится bool.