从我的控制器发送本地化的视图名称,如
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'没有适用的方法命名 '部分'但似乎有一个名称的扩展方法。 无法动态分派扩展方法。考虑投射 动态参数或调用扩展方法没有 扩展方法语法。
答案 0 :(得分:2)
ViewBag没有强类型,@Html.Partial
需要一个字符串,所以你应该能够:
@Html.Partial((string)@ViewBag.LocView);
答案 1 :(得分:1)
调用ViewBag
时,需要将其强制转换为字符串数据类型@Html.Partial((string)@ViewBag.LocView)