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

cro*_*eet 5 asp.net asp.net-mvc razor html.hiddenfor

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

  @Html.HiddenFor(m=>m.PortfolioId, ViewBag.PortfolioId);
Run Code Online (Sandbox Code Playgroud)

Pra*_*ash 18

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

或者,您可以使用iceburg建议的以下或纯HTML:

@Html.Hidden("id", (string)ViewBag.PortfolioId)
Run Code Online (Sandbox Code Playgroud)


ice*_*urg 2

我不确定如何使用助手来完成此操作,但您可以使用纯 html 实现相同的标记:

<input type="hidden" name="PortfolioId" id="PortfolioId" value="@ViewBag.PortfolioId" />
Run Code Online (Sandbox Code Playgroud)