2012-04-09 6 views
0

ASP.NET MVCで文字列urlに一致するルートを見つける方法はありますか?URLに一致するルートを見つけるにはどうすればよいですか?

これはデバッグの目的ではありません。

私はRequest.UrlReferrerを使用してリンクを生成していますが、このアプリケーションではコントローラの特定の動作に制限する必要があります。理想的には、まあまあのようなものでしょう:UrlReferrerは、これらの経路のいずれかに一致した場合

@Url.PreviousUrl(
    default: Url.Action("index", "home") 
    validRoutes: new[] { 
     new { controller = "list", "projects" } 
     new { controller = "tagged", "projects" }, 
     new { controller = "details", "category" } 
    } 
); 

その後、我々はそうでない場合、我々は指定されたデフォルトのURLにリダイレクトされます、それにリダイレクトされます。

+0

私はこの質問には、それをカバーだと思いますhttp://stackoverflow.com/questions/3545432/how-to-get-routedata- by-url。私は同じことをやろうとしていて、この答えは私のために解決しました – GraemeMiller

答えて

3

GetRouteDataは、次のように呼び出すことができます。そこより良い方法かもしれませんが、私はユニットテストで同様に使用しました

http://bradwilson.typepad.com/blog/2010/07/testing-routing-and-url-generation-in-aspnet-mvc.html

+0

ありがとうございました。おそらく私はhttpコンテキストをスタブ/嘲笑するのを避けることができると思ったが、それは十分にきれいだ。私は現在、http://gist.github.com/2346138でハッキー/不十分にテストされたコードを投稿しています:) –

+0

あなたは現在のhttpcontextを参照しています。 ? –

+0

こんにちはアダム。現在のHttpContextを使用すると、 'HttpContext.Request.Url'(読み取り専用)が現在のページに設定されます。 **特定のルートと一致するかどうかを見るために**前の**ページのURL(私がチェックしているもの)のHttpContextを構築する必要があります。それは理にかなっていますか? –

関連する問題