2016-11-15 3 views
1

Я новичок в ASP.Net Mvc, и я так запутался в настройках маршрутизации. После того, как я развернул свой проект к требованиям к производству, изменились URL-адреса. Первая версия моего приложения моя конфигурация маршрутизации была, как показано нижеДобавить всегда ограничение на маршрут

 routes.MapRoute(
         name: "Default", 
         url: "{controller}/{action}/{id}", 
         defaults: new { controller = "Account", action = "Index", id = UrlParameter.Optional } 
         ); 

Но клиент хотел получить доступ к применению как "http://{serveraddress}/ClaimFilePortal/{controller}/{action}/{id}". После этого я изменил конфигурацию маршрутизации, как показано ниже.

 routes.MapRoute(
         name: "Default", 
         url: "{applicationname}/{controller}/{action}/{id}", 
         defaults: new { applicationname ="ClaimFilePortal",controller = "Account", action = "Index", id = UrlParameter.Optional }, 
         constraints:new {applicationname = "ClaimFilePortal"} 
         ); 

Но в коде контроллеров есть переназначения, как и не добавляя MVC "ClaimFilePortal" ограничения.

 return RedirectToAction("Index2", "Account", 
       new RouteValueDictionary(new { systemUserId = systemUserId, returnUrl = "/Upload/RedirectToFolder" + Request.Url.Query})); 

Итак, как я могу добавить конфигурацию для всех переадресаций (Redirect(), RedirectToAction(), RedirectToRoute() etc.) добавить свои ограничения, прежде чем все URLs.

+0

Если вы должны иметь префикс 'ClaimFilePortal', то вы можете сопоставить свой путь к' ClaimFilePortal/{ controller}/{action}/{id} '.. Но ограничение не сможет, поскольку оно используется для фильтрации URL-адреса. Вы могли бы просто добавить значения по умолчанию: https://msdn.microsoft.com/en-us/library/cc668201.aspx#Anchor_4 – TryingToImprove

+0

Но в моих контроллерах есть несколько маршрутов, таких как 'return RedirectToAction (« Index2 »,« Account ", новый RouteValueDictionary (новый {systemUserId = systemUserId, returnUrl ="/Upload/RedirectToFolder "+ Request.Url.Query}));'. Я не хочу ничего менять для этих ситуаций. Будет ли префикс изменять URL-адрес перенаправления? –

+0

Когда я добавляю префикс, есть ошибка 403.14 :( –

ответ

0

Чтобы добавить «ClaimFilePortal» как префикс по умолчанию, удалить {} из него и попытаться как:

routes.MapRoute(
         name: "Default", 
         url: "applicationname/{controller}/{action}/{id}", 
         defaults: new { applicationname ="ClaimFilePortal",controller = "Account", action = "Index", id = UrlParameter.Optional }, 
         constraints:new {applicationname = "ClaimFilePortal"} 
         ); 

Смежные вопросы