По какой-то причине помощник HiddenFor в .NET Core (2.1.4) MVC не устанавливает значение для скрытого элемента ввода, несмотря на то, что значение присутствует в представляемом им свойстве модели.
Если я вручнуюсоздайте скрытый атрибут и используйте IdFor, NameFor и вручную установите значение, которое оно работает, как и ожидалось.
// This works and has a value attribute with a value
<input type="hidden" id="@Html.IdFor(x => x.Fields[componentIndex].Value)" name="@Html.NameFor(x => x.Fields[componentIndex].Value)" value="@Model.Fields[componentIndex].Value"/>
// This has a value attribute but it's empty
@Html.HiddenFor(x => x.Fields[componentIndex].Value)
Обратите внимание, что в обоих случаях сгенерированные имена и идентификаторы совпадают.
Если я используюHiddenFor и предоставляют new { @Value=... }
значение, которое он также не устанавливает.
Единственное отличие между HiddenFor, которые устанавливают значение (с использованием того же кода, но другого индекса компонента), заключается в том, что они предоставляютсяна пост, и этот проблемный задается в контроллере.