2011-01-27 17 views
0

私はASP.NET MVCで "catch the rest"ルートをどのように作成するのですか?
私は整形されたURLを取って、値にいくつかのデータを読み込み、リンクの残りの部分をいくつかの変数に保存して、後で読むことができ、リンクを生成する必要があります。
blog.mydomain.com/linker/process/2612010/2828/en/articles/october/asking-the-overflow/madd.aspxASP.NET MVCが残りのルートURLをキャッチ

を読み取るよう:
MEMBERID = 2612010
memberrating = 2828
言語=
restofurl EN = "記事/ 10月/尋ねる-オーバーフロー/ madd.aspx"


または、このリンク:blog.mydomain.com/linker/process/2612010/2828/en/articles /october/read.aspx?m=828

のような読み:


または

MEMBERID = 2612010
memberrating = 2828
言語=アン
restofurl = "記事/ 10月/ read.aspxメートル= 828?"

blog.mydomain.com/linker/process/2612010/2828/en/articles
to:
MEMBERID = 2612010
memberrating = 2828
言語=アン
restofurl = "記事"


私のようなものと考えられてきました:このルートはの残りの部分を拾って

routes.MapRoute(
      "Linker", // Route name 
      "Linker/Process/{memberid}/{memberrating}/{lang}/{*other}", // ULR with parameters 
      new { controller = "Linker", action = "Process", lang = "en", other = UrlParameter.Optional} 
     ); 

を正しくリンクされていますが、末尾のURLパラメータは省略されています: blog.mydomain.com/linker/process/2612010/2828/en/articles/october/read.aspx?m=828

と表示され、 "restofurl"値として 記事/ 10月/ read.aspx
と表示されます。
私は古典的なurl get params assignetを何にも必要としません。それらをrestofurl変数の一部にしたいだけです。

+0

私はなぜrestofurl変数を含む行から太字を削除できないのかわかりません。 formatingを使用していませんでした... – BuzzBubba

+1

'---'の行の下にヘッダが作成されます。 – SLaks

答えて

1

私はこれに自分自身で答えるでしょう。

var restofurl = 
String.Format("{0}?{1}", RouteData.Values["other"], Request.QueryString); 

正しいURLを効果的に構築します。あなたがそれをやっている "クリーナー/ニース"の方法を見つけることが起こった場合は、投稿してください。