【问题标题】:ASP.Net MVC dynamically switching ViewsASP.Net MVC 动态切换视图
【发布时间】:2013-06-08 01:05:46
【问题描述】:

我有一个 ASP.Net MVC 4 应用程序,用户可以在其中为其托管的单页网站(在此应用程序内)选择主题或设计。起初,我想使用内置区域来执行此操作,但由于某些应用程序限制,我决定不使用该方法。我认为这样做的方式(到目前为止有效)是将用户发送到控制器的索引操作,在那里找出他们选择的主题,然后返回适当的视图。这样我就没有 url 上的操作名称,这很好,因为 url 需要简单,例如:abc.com/cb/websiteID。顺便说一句,每个主题/设计在文件夹中都有一个视图。

由于某种原因,这种方法不适合我,我认为应该有更好的方法来做到这一点。这有倒台吗?这种方法是不好的做法吗?有没有更好的办法?

如果我遗漏了细节,请告诉我,我会尽力解决。

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 razor


    【解决方案1】:

    您是否有一组有限的主题可供您的用户选择? 如果是这样,我会考虑使用每个主题的布局,有一个单一的视图并根据参数动态切换布局......

    //in your controller
    public ActionResult(int id) {
        string layoutForThemeName = SomeService.GetThemeForUser(id);
        ViewBag.LayoutName = layoutForThemeName 
    }
    
    // in your view Index.cshtml
    @{
        Layout = ViewBag.LayoutName;
    }
    

    不要忘记 Razor 允许您从另一种布局继承一个布局,因此您可以使用脚本引用等创建基本布局以及每个主题的布局。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-04
      • 2019-06-27
      • 1970-01-01
      相关资源
      最近更新 更多