2016-05-18 10 views
0

ASP MVCのActionName属性にスラッシュを付けることは可能ですか?MVCのActionName属性のスラッシュ

私はパスが欲しいです

MyController/MyAction1 
MyController/MyAction2/A 
MyController/MyAction2/B 
MyController/MyAction3 

これは、ユーザーが使用するナビゲーションを模倣しているためです。しかし、私がMyControllerに以下を追加しようとするとうまくいかない。

[ActionName("MyAction2/A")] 
public ActionResults A() {...} 

明らかに属性がなければ、どちらも機能しません。

私は私のRouteConfig.cs

routes.MapRoute(
    name: "MyController", 
    url: "MyController/MyAction2/{action}", 
    defaults: new { controller = "MyController", action = "Index" } 
); 

に変更を試してみた。しかし、これはすべてのMyControllerのパスに影響を与えます。アクション名にスラッシュを付けるにはどうすればいいですか、ルート設定を「オーバーライド」にしてアクションがMyAction2のときに再生するにはどうすればよいですか?

答えて

0

これは、Routeアノテーションを使用してMVC 5で簡単に実行できます。ブログからEnable MVC 5 Routing

例:提案のための

[Route(“books/lang/{lang=en}”)] 
    public ActionResult ViewByLanguage(string lang) 
    { 
     return View(“OneBook”, GetBooksByLanguage(lang)); 
    } 
+0

感謝。私はあなたがMVC5でこれを行うことができたことを気付いた、残念ながら私はMVC4を使用している –

関連する問題