将ViewBag实例传递给Razor中的HiddenFor字段

时间:2014-12-13 08:32:11

标签: asp.net asp.net-mvc razor html.hiddenfor

使用ASP.NET MVC和Razor,我试图将ViewBag项从控制器传递到HiddenFor字段(使用Razor)。我收到以下消息:扩展方法无法通过动态调度。

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

3 个答案:

答案 0 :(得分:17)

您收到此错误,因为ViewBag是动态类型。您可以使用ViewModel而不是ViewBag来解决此问题。

或者你可以使用iceburg建议的以下或普通html:

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

答案 1 :(得分:2)

'我不知道如何使用帮助程序,但你可以使用普通的html实现相同的标记:

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

答案 2 :(得分:0)

@Html.HiddenFor(i =>i.PortfolioId, htmlAttributes: new { @Value = ViewBag.PortfolioId })

如果您的“ PortfolioId”确实是一种财产模型,将会解决您的问题。