【问题标题】:loading partialview where viewname is set inside ViewBag加载在 ViewBag 中设置 viewname 的部分视图
【发布时间】:2019-09-10 21:22:45
【问题描述】:

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

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' 没有名为的适用方法 “部分”,但似乎具有该名称的扩展方法。 扩展方法不能动态调度。考虑铸造 动态参数或调用扩展方法而不 扩展方法语法。

【问题讨论】:

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


    【解决方案1】:

    ViewBag 不是强类型,@Html.Partial 需要一个字符串,所以您应该能够:

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

    【讨论】:

      【解决方案2】:

      调用 ViewBag 时需要将其转换为字符串数据类型

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-25
        • 1970-01-01
        • 1970-01-01
        • 2012-04-05
        • 2016-05-22
        • 1970-01-01
        • 1970-01-01
        • 2013-06-11
        相关资源
        最近更新 更多