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



使用 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"真的是一个房地产模型,将解决您的问题。

最新更新