使用ASP.NET MVC和Razor,我试图将ViewBag项从控制器传递到HiddenFor字段(使用Razor)。我收到以下消息:扩展方法无法通过动态调度。
@Html.HiddenFor(m=>m.PortfolioId, ViewBag.PortfolioId);
答案 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”确实是一种财产模型,将会解决您的问题。