次のようなコントローラーがあります。
public class PageController : Controller
{
public ActionResult Render(string url)
{
//this is just for testing!
return Content("url was " + url);
}
}
URLの値をコントローラーに渡そうとしています。例:
http://www.site.com/products/something/else
「products/something/else」を PageController の Render アクションに渡します。
これは、データベース内のレコードの一意のキーとして "products/something/else" を使用しているためです (レガシー システム、質問しないでください)。
したがって、私の結果のクエリは、次のようなものになります。
select * from foo where urlKey = 'products/something/else'
これまでのところ、Global.asax の RegisterRoutes セクションにこれがあります。
routes.MapRoute("pages", "{*url}", new { controller = "Page", action = "Render", url="/" });
しかし、これは期待どおりに機能しません...
www.site.com/products/something/else にアクセスすると、コントローラーに渡される値は「home/index/0」
になります RegisterRoutes で定義されている唯一のルートは、質問に記載されているものです。