Передайте экземпляр ViewBag в поле HiddenFor в Razor
Используя ASP.NET MVC и Razor, я пытаюсь передать элемент ViewBag из контроллера в поле HiddenFor (используя Razor). Я получаю следующее сообщение: методы расширения не могут быть динамически отправлены.
@Html.HiddenFor(m=>m.PortfolioId, ViewBag.PortfolioId);
3 ответа
Вы получаете эту ошибку, потому что ViewBag - динамический тип. Вы можете использовать ViewModel вместо ViewBag для решения этой проблемы.
В качестве альтернативы вы можете использовать следующий или обычный html как предложено iceburg:
@Html.Hidden("id", (string)ViewBag.PortfolioId)
Я не уверен, как это сделать с помощником, но вы можете добиться той же разметки, используя обычный HTML:
<input type="hidden" name="PortfolioId" id="PortfolioId" value="@ViewBag.PortfolioId" />
@Html.HiddenFor(i =>i.PortfolioId, htmlAttributes: new { @Value = ViewBag.PortfolioId })
решит вашу проблему, если ваш «PortfolioId» действительно является моделью собственности.