2014-12-13 2 views
4

Используя ASP.NET MVC и Razor, я пытаюсь передать элемент ViewBag из контроллера в поле HiddenFor (используя Razor). Я получаю следующее сообщение: методы расширения не могут динамически отправляться.Передайте экземпляр ViewBag в поле HiddenFor в Razor

@Html.HiddenFor(m=>m.PortfolioId, ViewBag.PortfolioId); 
+0

ли есть ли у вас модель свойство 'PortfolioId'? Я предполагаю, что вы не понимаете '@ Html.HiddenFor()' - второй параметр для рендеринга html-атрибутов –

ответ

1

Я не знаю, как сделать это с помощником, но вы можете достичь те же разметок использованияКонтактных простого HTML:

<input type="hidden" name="PortfolioId" id="PortfolioId" value="@ViewBag.PortfolioId" /> 
13

Вы получаете эту ошибку, потому что ViewBag динамического типа. Вы можете использовать ViewModel вместо ViewBag для решения этой проблемы.

В качестве альтернативы вы можете использовать следующие или простой HTML как это было предложено Iceburg:

@Html.Hidden("id", (string)ViewBag.PortfolioId) 
+0

работал красиво в mvc 4-thanx – mzonerz