【发布时间】:2012-08-28 18:23:07
【问题描述】:
我在使用 asp 4.0 路由时遇到问题。
我在 Global.cs 中有方法
void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("cats","Categories/{ct}/{catname}","~/catwise.aspx");
}
和
protected void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
在我的母版页上
<a href="Categories/<%# Eval("Category_Id")%>/<%# Eval("Category_Name")%>">
这在 Categories/1/Apple 这样的第一次路由中运行良好,但现在在第一次路由之后,所有链接都是双重路由页面,如 Categories/1/Apple/Categories/2/Banana。
链接相互攀爬,因此页面显示Resource not found
我尝试设置Base,但这让事情变得更糟。
我没有使用任何自定义处理程序
我应该如何解决这个问题?/为什么它不能正常工作?
尝试在<a href="/Categories/<%# Eval("Category_Id")%>/<%# Eval("Category_Name")%>"> 之类的网址之前使用/,但它说resource not found 所以在routes.MapPageRoute("cats","/Categories/{ct}/{catname}","~/catwise.aspx"); 中添加了/
但它抛出编译时错误,说 url 不能包含 / 或 ~ 或 ?。
【问题讨论】:
-
您在测试网站时的主页 URL 是什么?是
http://localhost:1234还是http://localhost:1234/mysite。如果是前者,/应该可以工作 -
首页网址为
http://localhost:14268/mysite -
这就是
/不起作用的原因。它给出了http://localhost:14268/Categories/1/Apple而不是正确的http://localhost:14268/mysite/Categories/1/Apple。有趣的是,在生产中会起作用......无论如何,请参阅我在下面帖子中的最后一次编辑,它应该可以解决问题。
标签: asp.net url-routing