Я думаю, вы могли бы создать класс с именем noclass
и включить функции в качестве методов. Кроме того, вы можете разделить noclass
на несколько категорий функций.
Наиболее вероятная причина - привязка к свойству AllowOrder
с помощью помощника HiddenFor
перед использованием <input type="checkbox" />
, который будет генерировать входные элементы в следующем порядке:
<input name="AllowOrder" type="hidden" ... />
<input type="checkbox" id="allowOrder" name="AllowOrder" value="true" ... />
, поскольку существует 2 Для входных элементов с таким же значением атрибута name
только первый элемент <input>
будет привязан к свойству viewmodel, которое содержит значение true
в вашем случае. Вместо того, чтобы создавать флажок вручную с тегом <input>
и скрытым полем отдельно, вы должны использовать вспомогательный атрибут @Html.CheckBoxFor()
и переключить атрибут checked
с помощью вспомогательной функции ниже или использовать троичный оператор:
public object SetChecked(bool value)
{
if (value)
{
return new { id = "allowOrder", @checked = "checked" };
}
else
{
return new { id = "allowOrder" };
}
}
Флажок
@* alternative 1 *@
@Html.CheckBoxFor(model => model.AllowOrder, @(SetChecked(Model.AllowOrder)))
@* alternative 2 *@
@Html.CheckBoxFor(model => model.AllowOrder, new { id = "allowOrder", @checked = @(Model.AllowOrder ? "checked" : "") })
Примечание: checked
- это ключевое слово C #, поэтому его необходимо экранировать с помощью @
, чтобы установить его как атрибут HTML визуализации <input type="checkbox" />
.