我已经为我们的一位客户开发了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文件夹
这些文件夹将包含布局和cshtml文件。 具有 return View()或 return View(“ viewname”)的任何操作都应从受关注的客户端文件夹中选择相应的视图。
如果有人知道实现此目的的任何解决方案(例如配置RouteConfig或DisplayModeProvider类等),请帮助我。我不想在每个return view语句中进行if-else检查并指定完整路径。
预先感谢:)
答案 0 :(得分:0)
您可以在从操作方法返回时指定视图的路径,例如,如果客户端是ICICI,则 return View(“〜/ ICICI_Views / Home / Index.cshtml”); 找不到客户可以使用 return View();
return View("~/ICICI_Views/Home/Index.cshtml");