在ViewBag中设置viewname的部分视图

时间:2016-01-25 23:29:56

标签: c# .net asp.net-mvc

从我的控制器发送本地化的视图名称,如

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'没有适用的方法命名   '部分'但似乎有一个名称的扩展方法。   无法动态分派扩展方法。考虑投射   动态参数或调用扩展方法没有   扩展方法语法。

2 个答案:

答案 0 :(得分:2)

ViewBag没有强类型,@Html.Partial需要一个字符串,所以你应该能够:

@Html.Partial((string)@ViewBag.LocView);

答案 1 :(得分:1)

调用ViewBag

时,需要将其强制转换为字符串数据类型
@Html.Partial((string)@ViewBag.LocView)