Несколько папок просмотра на основе параметра URL - PullRequest
0 голосов
/ 14 ноября 2018

Я разработал приложение 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 в каждом операторе представления возврата и указывать полный путь.

Заранее спасибо:)

1 Ответ

0 голосов
/ 14 ноября 2018

Вы можете указать путь к представлению при возврате из метода действия. Например, если клиент ICICI, тогда возвращает представление ("~ / ICICI_Views / Home / Index.cshtml"); и если нетклиент нашел, что вы можете использовать return View ();

return View("~/ICICI_Views/Home/Index.cshtml");
...