Sitecore MVC, входные теги и выражения условий в качестве их значений

Наблюдается некоторое странное поведение при установке атрибута value входного тега в условный оператор. Я использую следующий код.

<input type="hidden" id="canAddAll" value="@(Model.WishList.Products != null && Model.WishList.Products.All(p => p.CanAdd))" />

Ожидаемый результат «значение» для входного тега будет «Истина», но я получаю только текст «значение».

<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)

Любые идеи, почему я увижу такое поведение?


person grincoguy    schedule 24.04.2014    source источник
comment
Я не уверен, что смогу ответить на ваш конкретный вопрос, однако я бы рекомендовал поместить логику в модель WishList как общедоступное логическое свойство CanAddAll.   -  person Derek Hunziker    schedule 24.04.2014
comment
Для этого также можно использовать расширения htmlHelper: @Html.Hidden(canAddAll, Model.WishList.Products != null && Model.WishList.Products.All(p => p.CanAdd))   -  person RvanDalen    schedule 28.04.2014


Ответы (1)


Попробуйте использовать Html.HiddenFor().

Полное объяснение см. в принятом ответе здесь: https://stackoverflow.com/a/18529322/435090

person Steven Striga    schedule 28.04.2014