はMVC

2016-11-07 3 views
1

でコントローラ名のようになります。現在はMVC

example.com/?City=Canada&para1=&para2=&.... 

としてアドレスバーが表示内のURLは、URLが可能にすることで、すべてのことが可能です:

example.com/Canada/?para1=&para2=&.... 

次のルートが使用されています:

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

しかし、これはカナダのコントローラーまたはActi方法? また、最初のURLと同じことを行う必要があります。

+0

あなたの 'RoutesConfig' – haim770

+0

@ haim770に現在のルートと共に関連コントローラコードを表示すると、質問が更新されます – AmanVirdi

答えて

1

の前に、の前に現在のデフォルトルートを置きます。

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

これは基本的に、ルートの最初のパスが「都市」のパラメータであると言います。したがって/Canada/のようなルートではcityは "カナダ"、controller/actionは "ホーム"と "インデックス"(ルートには提供されていないため)のデフォルトになります。

注:カナダは都市ではないとご存じですか?

+0

もちろん、彼はリトルカナダ、ミネソタ州を意味しました。 http://www.ci.little-canada.mn.us/ –

+0

上記は動作しています。しかし、私はこれをコントローラー内の1つのアクションメソッドにのみ適用しようとしています。属性ルーティングでこれを行うことはできますか? – AmanVirdi