使用 ASP.NET MVC 和 Razor,我试图将 ViewBag 项从控制器传递到 HiddenFor 字段(使用 Razor)。我收到以下消息:扩展方法不能通过动态调度。
@Html.HiddenFor(m=>m.PortfolioId, ViewBag.PortfolioId);
使用 ASP.NET MVC 和 Razor,我试图将 ViewBag 项从控制器传递到 HiddenFor 字段(使用 Razor)。我收到以下消息:扩展方法不能通过动态调度。
@Html.HiddenFor(m=>m.PortfolioId, ViewBag.PortfolioId);
您收到此错误是因为 ViewBag 是动态类型。您可以使用 ViewModel 代替 ViewBag 来解决这个问题。
或者,您可以按照 iceburg 的建议使用以下或纯 html:
@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”确实是一个属性模型,将解决您的问题。