【发布时间】:2012-06-20 11:50:45
【问题描述】:
我有一个如下所示的控制器:
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 的渲染操作中。
这是因为我们使用“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 中定义的唯一路线是问题中描述的路线。
【问题讨论】:
-
什么没有按预期工作?期望什么?实际结果如何?
-
编辑回答您的问题
-
我无法重现您所描述的问题。我创建了一个新的 ASP.NET MVC 应用程序,完全按照您的问题中所示定义了 PageController,完全按照您的问题中所示定义了 RegisterRoutes,当我按下 F5 时,我看到:
url was products/something/else。您能否提供有关我们如何重现您的问题的详细说明? -
这条路线也适合我。我会在回答问题之前检查一下:(
-
@DarinDimitrov @Mark 对我来说,它吐出
url was home/index/0
标签: c# asp.net-mvc routing routes