2010-12-30 7 views
1

私たちのソリューションをMVC 2にアップグレードしました。外部リンクでも、/mypath/Default.aspxにクエリ文字列n = 10を使用しています。コントローラーでそのルートをキャッチし、適切なクエリ文字列でDefault.aspxファイルを呼び出す方法はありますか?MVCルーティング:/mypath/Default.aspxを/Default.aspxにルーティングしてQueryStringを保持する方法

IIS6とメタリフレッシュで簡単にルーティングを試みましたが、両方ともクエリ文字列を削除しました。

Nick Craverのanswerは、この質問に対する答えとして有望に見えます。

答えて

1

"と、正しいクエリ文字列でDefault.aspxファイルを呼び出すのはどういう意味ですか?しかし、あなたがデフォルトルートを呼び出すことを意味するならば、それは簡単に行うことができます。

"mypath/Default.aspx"にルートを指定するだけでよいはずです。クエリ文字列は自動的にメソッドにバインドされます。例えば

routes.MapRoute(
    "LegacyUrl", // Route name 
    "mypath/Default.aspx", // URL with parameters 
    new { controller = "Home", action = "Index"} 
); 

次に、あなたの方法:

[HttpGet] 
public ActionResult Index(int n) 
{ 
    // do something with n, maybe pass it to the View 
    return View(); 
} 
+0

ウィル 'routes.MapPageRoute( "/旧/パス//myWebForm.aspxに"、 "{*}値"、 "〜/ myWebForm.aspx"); 'QueryStringパラメータまたは投稿されたデータを新しいページに転送します。たとえば、/old/path/to/myWebForm.aspx?somedata=yep&otherdata=yep become /myWebForm.aspx/?somedata=yep&otherdata =うん?これが事実である場合のみ、どのようにしてデータを転送することができますか? –

関連する問題