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)
}