【发布时间】:2011-08-15 00:50:50
【问题描述】:
我正在使用 ASP.NET 路由将 URL 映射到我网站的任意数量的部分。尽管我希望有不同的 URL,但它们都将由同一页面处理。例如
http://site.com/blog 用于我的blog 部分http://site.com/mysection 用于mysection 等。
这些部分可以有任意数量,但它们都将由Lister.aspx 处理。
我还有另一个处理内容的页面,名为ContentView.aspx,它展示了内容。我的路线如下:(猫是类别列表)
cats.ForEach(c =>
{
table.Add(new Route(c.ShortName, new PageRouteHandler("~/Lister.aspx?cat=" + c.ID), ));
table.Add(new Route(c.ShortName + "/{id}", new PageRouteHandler("~/ContentView.aspx")));
table.Add(new Route(c.ShortName + "/{id}/{title}", new PageRouteHandler("~/ContentView.aspx")));
});
假设我有一篇 ID 为 123 标题为 hello 的博文:
用户可以通过http://site.com/blog/123/hello访问它
他们也可以只使用 ID http://site.com/blog/123
正如您可能猜到的那样,我希望http://site.com/blog 指向列表页面而不是内容查看器,并且我还需要类别 ID 来区分哪个类别(blog 或 mycategory 或其他任何动态创建的内容)我应该显示。我正在尝试将类别 ID 传递给查询字符串,调用列表页面,但没有查询字符串。为什么会出现这种行为,如何将我的类别 ID 发送到列表页面?
【问题讨论】:
标签: asp.net query-string url-routing