加载在 ViewBag 中设置视图名称的部分视图
本文关键字:视图 加载 ViewBag 设置 | 更新日期: 2023-09-27 18:31:47
我从我的控制器发送本地化的视图名称,例如
string currentCulture = Thread.CurrentThread.CurrentCulture.ToString();
string viewName = string.Empty;
switch (currentCulture)
{
case "en-US":
viewName = "en-US.cshtml";
break;
case "de-DE":
viewName = "de-DE.cshtml";
break;
case "fr-FR":
viewName = "fr-FR.cshtml";
break;
default:
}
ViewBag.LocView = "~/Views/Home/"+viewName;
和内部视图,我想使用部分喜欢显示
@Html.Partial(@ViewBag.LocView);
但这显然是不行的,因为我得到了
"System.Web.Mvc.HtmlHelper"没有适用的名为 "部分",但似乎具有该名称的扩展方法。 无法动态调度扩展方法。考虑选角 动态参数或调用扩展方法而不调用 扩展方法语法。
ViewBag 不是强类型,@Html.Partial
需要一个字符串,所以你应该能够:
@Html.Partial((string)@ViewBag.LocView);
调用 ViewBag 时需要将其转换为字符串数据类型
@Html.Partial((string)@ViewBag.LocView)