Sitecore MVC, входные теги и выражения условий в качестве их значений
При установке атрибута value входного тега в условный оператор наблюдается некоторое странное поведение. Я использую следующий код.
<input type="hidden" id="canAddAll" value="@(Model.WishList.Products != null && Model.WishList.Products.All(p => p.CanAdd))" />
Ожидаемый результат "value" для входного тега будет "True", но я получаю только текст "value".
<input type="hidden" id="canAddAll" value="value">
Когда вы смотрите на источник компиляции, похоже, что он использует Tuple для создания атрибута value в этом случае. То, что ожидается, это простой Write() для значения.
WriteAttribute("value", Tuple.Create(" value=\"", 272), Tuple.Create("\"", 382), Tuple.Create(Tuple.Create("", 280), Tuple.Create<System.Object, System.Int32>(Model.WishList.Products != null && Model.WishList.Products.All(p => p.CanAdd), 280), false)
Есть идеи, почему я бы видел это поведение?
1 ответ
Попробуйте использовать Html.HiddenFor().
Для полного объяснения см. Принятый ответ здесь: /questions/38144971/problema-privyazki-bulevoj-modeli-v-mvc-4/38144984#38144984