我为我们的一个客户开发了一个 MVC5 应用程序。它工作正常。现在我们有更多的客户端,所有功能都相同,但每个客户端的视图不同(不仅布局,而且每个视图的 html 结构本身都不同)。
我为区分客户端所做的是提供不同的 url,添加客户端标识符(因为我们需要在登录之前识别客户端),并在 RouteConfig 中对其进行过滤,如下所示:
routes.MapRoute("ClientRoute", "{client}/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id =
UrlParameter.Optional },
new RouteValueDictionary
{
{ "client", "icici|federal|pnb|sbi" }
});
icici、federal、pnb 和 sbi 是有效客户。
我可以使用下面的代码来区分任何客户端特定逻辑的客户端。
var clientName = HttpContext.Current.Request.RequestContext.RouteData.Values["client"].ToString();
我想要的是为每个客户提供单独的 View 文件夹
- 视图(默认,如果在其他位置找不到,则应从此处获取)
- ICICI_Views
- SBI_Views
- FEDERAL_Views
- PNB_Views
- ……
这些文件夹将包含布局和 cshtml 文件。任何具有return View()或return View("viewname")的操作都应从受尊重的客户端文件夹中选择相应的视图。
如果有人知道实现此功能的任何解决方案(例如配置 RouteConfig 或 DisplayModeProvider 类等),请帮助我。我不想在每个返回视图语句中进行 if-else 检查并指定完整路径。
提前致谢 :)