2011-01-10 21 views
2

私はMVCを初めて使い、この質問に対して答えを見つけることができません。 Global.asaxではなく特定のアクションメソッドの属性を使用してルートマッピングを指定できるようにするMVC 1(または2)のアーキテクチャが組み込まれていますか?複数のメソッドを同じアクションに結び付けることができるので、ルートを不必要に重複させる必要があるため、その使用はある程度制限されていることがわかりますが、私の質問は依然として残っています。.NET MVC:アトリビュートを使用したマップルート

また、私は複数のメソッドで同じアクションについて先ほど触れたこと以外に、誰かがこのようなものを実装するのにどのような問題を見ていますか?

注::これを実装するには、をご回答ください。このようなものが存在するかどうかだけを確認し、そうでない場合は、それが価値があるよりも面倒です。

答えて

1

これにはASP.NET MVC Attribute Based Route Mapperをお勧めします。あなたは自分の行動ルートを登録してroutes.MapRoutes()を呼び出して、あなたのglobal.asaxで次に

public SiteController : Controller 
{ 
    [Url("")] 
    public ActionResult Home() 
    { 
     return View(); 
    } 

    [Url("about")] 
    public ActionResult AboutUs() 
    { 
     return View(); 
    } 

    [Url("store/{category?}")] 
    public ActionResult Products(string category) 
    { 
     return View(); 
    } 
} 

:これは、サードパーティのライブラリで、ASP.NET MVC 1または2の使用は、以下のようなものが付属していません。

これを実装するのは簡単ではありません。

+0

Spiffy。私は見てみましょう。どうもありがとう! –

4

AttributeRoutingNuGetで利用可能)を試すこともできます。ディスクロージャー - 私はプロジェクトの著者です。私はこれを個人的でプロフェッショナルなプロジェクトで大成功を収めて使用しましたが、私がしなければASP.NET MVCのデフォルトルーティングメカニズムに戻っていません。 github wikiをご覧ください。そこには多くの機能の豊富なドキュメントがあります。

シンプルな使用法は次のようになります。

public class RestfulTestController : Controller 
{ 
    [GET("Resources")] 
    public ActionResult Index() 
    { 
     return Content(""); 
    } 

    [POST("Resources")] 
    public ActionResult Create() 
    { 
     return Content(""); 
    } 

    [PUT("Resources/{id}")] 
    public ActionResult Update(int id) 
    { 
     return Content(""); 
    } 

    [DELETE("Resources/{id}")] 
    public ActionResult Destroy(int id) 
    { 
     return Content(""); 
    } 
} 

AttributeRoutingは、高度に設定可能であり、いくつかの拡張ポイントがあります。見てみな。

+0

ヘルプ、私の質問はこちら[link](http://stackoverflow.com/questions/10646580/attributerouting-does-not-work) – dfang

関連する問題