2017-01-25 1 views
0

У меня проблема с моим веб-приложением. Я использую C# MVC для своего приложения, и я создал собственный формат для своего URL-адреса, потому что мое приложение будет подключаться к другой базе данных в зависимости от кода, который я получаю в своем URL-адресе.C# MVC Url формат автоматически

Проблема в том, что когда я впервые пообещаю свое приложение, изменение URL по пути. вот пример:

мой пользовательский формат так:

{код}/{культура}/{контроллер}/{действие}/{идентификатор}

У меня есть это URL с самого начала:

http://localhost:47730/efs/fr-ca

здесь EFS означают {код} и пт-ча{культура}

, но по пути он стал таким

http://localhost:47730/Home/Index

Я хочу это должно быть так:

http://localhost:47730/efs/fr-ca/Home/Index

Вот мой routeConfig:

public class RouteConfig 
{ 
    public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapRoute(
      name: "Default", 
      url: "{code}/{culture}/{controller}/{action}/{id}", 
      //defaults: new { code = string.Empty,culture = string.Empty, controller = "Home", action = "RV", id = UrlParameter.Optional } 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 


     routes.MapRoute("Error", "{*url}", new { controller = "Error", action = "Error" }); 
    } 
} 

Если вам нужна дополнительная информация просто спросите меня :)

Спасибо за ваше время!

ответ

1

Попробуйте

public class RouteConfig 
    { 
     public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

      routes.MapRoute(
       name: "Default", 
       url: "{code}/{culture}/{controller}/{action}/{id}", 
         defaults: new {code ="efs",culture="fr-ca", controller = "Home", action = "Index", id = UrlParameter.Optional } 
      ); 


      routes.MapRoute("Error", "{*url}", new { controller = "Error", action = "Error" }); 
     } 
    } 
+0

Дело в том, что код «EFS» может быть что угодно, так что я не хочу поставить значение по умолчанию на там – alexandre

+1

Тогда не включают значения по умолчанию. Однако, если нет значения по умолчанию, вы должны * всегда * предоставлять часть URL-адреса. Другими словами, не было бы способа загрузить только корень документа ('/'). Главное в ответе @ Шаня, однако, состоит в том, что вам нужно изменить маршрут по умолчанию, чтобы включить эти параметры маршрута. Если у вас есть маршрут, который их не требует, MVC всегда будет коротко замыкаться в маршрутизации и идти с маршрутом, который их не требует. –