Передайте экземпляр 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» действительно является моделью собственности.

Другие вопросы по тегам