2011-11-08 18 views
2

リンクが生成されるときコードはコントローラのIndexxにあります。 ので、リンクはこの形式で生成されurlHelper.RouteUrlが生成されていません。正しいURL

Wk/Index/XX/YYYY 

URLコードは

url = urlHelper.RouteUrl("Wk", new { slug}); 

ですが、私は、cが、他のアクションでリンクが

Wk/C/XXX 

ここではこの形式になります必要があります名前 これはどのように達成できますか?

私のグローバルAsaxが

 routes.MapRoute(
      "Default", // Route name 
      "{controller}/{id}", // URL with parameters 
      new { controller = "Home", action = "Index" , id = UrlParameter.Optional } // Parameter defaults 
     ); 

     routes.MapRoute(
      "Wk", // Route name 
      "{controller}/{action}/{slug}/{id}", // URL with parameters 
      new { controller = "Wk", action = "c", slug = "", id = UrlParameter.Optional } // Parameter defaults 
     ); 

     routes.MapRoute(
      "Book", // Route name 
      "{controller}/{id}/{pageNo}", // URL with parameters 
      new { controller = "Book", action = "Index",id = UrlParameter.Optional,pageNo = UrlParameter.Optional } // Parameter defaults 
     ); 

     routes.MapRoute(
      "UserArea", // Route name 
      "{controller}/{slug}/{id}", // URL with parameters 
      new { controller = "UserArea", action = "Index", slug = UrlParameter.Optional, id = UrlParameter.Optional } // Parameter defaults 
     ); 
+0

多くの方法があります。ルートの定義方法によって異なります。それはWkの/インデックス を生成しているPresendのでアクション として –

+0

は、私は私に知らせるWkを/ C/ cが、私はインデックスを必要といけないアクション名 あるリンクを必要とするいずれかの方法 – user1006544

+0

どのようGlobal.asaxの中のようなあなたのルーティング定義を見て? –

答えて

6

ように見えますが、このようにしてみてください。

var url = urlHelper.RouteUrl("Wk", new { action = "C", slug = "XXX" }); 
+0

ありがとうございました! – user1006544

+3

デフォルトのアクションは 'MapRoute()'にすでに設定されています。なぜフレームワークは 'RouteUrl()'に明示的に指定する必要がありますか?これは非常に不自然です... – UserControl

+0

@UserControlからの質問に対する回答はありません – user99999991

関連する問題