1

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

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

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

4

1 回答 1

3

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

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

// in your view Index.cshtml
@{
    Layout = ViewBag.LayoutName;
}

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

于 2013-06-08T11:14:38.070 回答