Вы не можете использовать лямбда-выражение для анонимного типа внутри помощника HTML (т.е. htmlAttributes
).Чтобы использовать условный атрибут required
в качестве атрибута HTML, вы можете сделать это, используя троичный оператор, например:
@Html.TextBoxFor(model => model.FooBar, Model.Foo == 1 ?
(object)new { @class = "form-control", @required = "required" } :
(object)new { @class = "form-control" })
Или используя блок if
:
@if (Model.Foo == 1)
{
@Html.TextBoxFor(model => model.FooBar, new { @class = "form-control", @required = "required" })
}
else
{
@Html.TextBoxFor(model => model.FooBar, new { @class = "form-control" })
}
Примечание: required
Атрибут HTML для <input>
элементов является логическим атрибутом , значение которого false
обозначено отсутствием атрибута, а наличие этого атрибута просто указывает true
значение:
Значения "true" и "false" равны , не допускаются для логических атрибутов.Чтобы представить ложное значение, атрибут должен быть вообще пропущен.
Связанная проблема:
Условный атрибут Html с использованием razor @html helpers