Я разработал приложение 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, федеральный, pnb и sbi являются действительными клиентами.
, и я мог бы использовать этот код ниже, чтобы различать клиентов для любой конкретной клиентской логики.
var clientName = HttpContext.Current.Request.RequestContext.RouteData.Values["client"].ToString();
То, что я хочу, этоиметь отдельные папки «Просмотр» для каждого клиента
FEDERAL_Views PNB_Views ....
в этих папках будут файлы макета и файлы cshtml.Любое действие, имеющее return View () или return View ("viewname") , должно выбирать соответствующие представления из соответствующих папок клиента.
Пожалуйста, помогите мне, если кто-нибудь знает какое-либо решение для реализации этого (например, настройка RouteConfig или класса DisplayModeProvider и т. Д.).Я не хочу иметь проверку if-else в каждом операторе представления возврата и указывать полный путь.
Заранее спасибо:)