url
に一致するroute
を制約付きで設定したいとします。 controllアクションLoadContentに完全なURLを渡すことを期待するとき、私は制約が満たされた場合ASP.NETルーティング - 制約付きでURL全体を取得する
public class ContentURLConstraint : IRouteConstraint
{
public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
{
var s = (string)values["url"];
return s.Contains("comm");
}
}
:私は次の簡単な制約が
routes.MapRouteLowercase("CatchAll Content Validation", "{*url}",
new { controller = "Content", action = "LoadContent" },
new { url = new ContentURLConstraint(), }
);
およびテスト目的のために:これは私が試したものです
public ActionResult LoadContent(string url)
{
return Content(url);
}
私は期待しています、私はにs
ページをロードするとき10は、url
の全部を含むように機能するので、確認することができますが、代わりにnull
です。私は何が欠けていますか?
達成しようとしていることを完全には明確にしていません。おそらくあなたの質問をいくつかの例で更新できますか? –
私はもう少し詳細を追加しました。要するに、すべての着信URLを制約に照らしてチェックし、満たしていればアクションに沿って完全なURLを渡したいと思います。表示されている一致機能は、私が抱えている問題を説明するためのものです。 – jackmott
メソッド内で 'values'オブジェクトの外観を見せてください。 – krillgar