使用 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 })
如果您的"投资组合ID"真的是一个房地产模型,将解决您的问题。