Html.Partial() 可以接受 ViewBag 来确定要呈现的局部视图吗?
Can Html.Partial() accept a ViewBag to determine the partial view to render?
所以我正在使用 Html.Partial()
来呈现部分视图。这是一个非常基本的 MVC 应用程序,可帮助我理解部分视图和整个 MVC。
我有一个带有下拉菜单的表单,它可以更改显示在下拉菜单下方的内容。如果选择'One',则显示'One',同'Two'。这是使用在我的控制器中更改的 ViewBag。但是,我希望通过局部视图显示它。所以我得到了这个 @Html.Partial(ViewBag.Test)
。这根本不起作用,它给出了 CS1973 错误。
这是我得到的完整错误:
错误 CS1973 'HtmlHelper' 没有名为 'Partial' 的适用方法,但似乎有一个名为该名称的扩展方法。不能动态调度扩展方法。
我设法通过将 Html.Partial()
的内容转换为字符串来解决此问题:Html.Partial((string)ViewBag.Test)
。然后我将它放在 if 语句中以检查 ViewBag.Test
是否为空,因为 运行 as ViewBag.Test
未分配给时发生错误。
这就是我最终得到的结果:
@if (ViewBag.Test != null)
{
@Html.Partial((string)ViewBag.Test)
}
所以我正在使用 Html.Partial()
来呈现部分视图。这是一个非常基本的 MVC 应用程序,可帮助我理解部分视图和整个 MVC。
我有一个带有下拉菜单的表单,它可以更改显示在下拉菜单下方的内容。如果选择'One',则显示'One',同'Two'。这是使用在我的控制器中更改的 ViewBag。但是,我希望通过局部视图显示它。所以我得到了这个 @Html.Partial(ViewBag.Test)
。这根本不起作用,它给出了 CS1973 错误。
这是我得到的完整错误:
错误 CS1973 'HtmlHelper' 没有名为 'Partial' 的适用方法,但似乎有一个名为该名称的扩展方法。不能动态调度扩展方法。
我设法通过将 Html.Partial()
的内容转换为字符串来解决此问题:Html.Partial((string)ViewBag.Test)
。然后我将它放在 if 语句中以检查 ViewBag.Test
是否为空,因为 运行 as ViewBag.Test
未分配给时发生错误。
这就是我最终得到的结果:
@if (ViewBag.Test != null)
{
@Html.Partial((string)ViewBag.Test)
}