2011-06-28 11 views
3

クエリ文字列を使用するのではなく、安静な構文を使用してオブジェクトにアクセスできるようにしたい(JSONまたはXMLの可能性があります)。maprouteを使用してasp.net mvcで複数のパラメータをルーティングすることは可能ですか?

http://mywebsite.com/objects/get=obj1&get=obj2&get=someotherobject/の代わりに、http://mywebsite.com/objects/obj1/obj2/のようなものがあり、xml/JSONが返されます。それらは、問合せ文字列と同様に、オブジェクトを任意の順序でリストすることができます。

あなたがそうのようなルートマップのasp.net MVCでは

params配列は、それぞれが取得含まれます
 routes.MapRoute(
      "MyRoute", 
      "MyController/MyAction/{params}", 
      new { controller = "MyController", action = "MyAction", params = [] } 
     ); 

:私のような何かをしたいと思う

 routes.MapRoute(
      "MyRoute", 
      "MyController/MyAction/{param}", 
      new { controller = "MyController", action = "MyAction", param = "" } 
     ); 

を。

答えて

3

ワイルドカードパラメータは、{*params}にマッピングして作成できます。
これは、すべてのパラメータを含む単一の文字列を与えます。次に、.Split('/')になります。

+0

routes.MapRouteをプログラムで使用するのではなく、ASP.NET MVC MapRoutesをXMLファイルに移動することはできますか?また、それをC#やVB.NETにコーディングするのではなく、XMLファイルにプッシュするほうがよいでしょうか? – user1338998

+0

@ user1338998:XMLを読み込み、 'MapRoute()'を呼び出す独自のコードを書くことができます。他の誰かがそのようなコードを書いているかもしれません。 – SLaks

+0

LOL、私は.NET開発者とJEE開発者の間で悪質な議論を開始したくありません。しかし、JEEテクノロジでは、JSF MVCとStruts MVCのビューへのマッピングの設定はfaces-config.xmlやstruts-config.xmlのようなXMLファイルで行われます。これは適切な方法です。再コンパイルしたくない。つまり、xmlを変更してサーバーを再起動するだけです。 – user1338998

3

あなたは、これはあなたが配列を取得するために/に分割することができ、文字列としてのparamsを渡す

routes.MapRoute(
     "MyRoute", 
     "MyController/MyAction/{*params}", 
     new { controller = "MyController", action = "MyAction"} 
    ); 

キャッチオールパラメータを使用することができます。

関連する問題