【发布时间】:2014-12-09 23:49:08
【问题描述】:
我一直在试图弄清楚如何让 URL 路由在我的盒子上工作一整晚。我很确定我是按照在线教程 (http://msdn.microsoft.com/en-us/library/vstudio/dd329551%28v=vs.100%29.aspx) 做的,但由于某种原因它不起作用。
这是我目前在地址栏中输入的内容:/MA1/DoSurvey.aspx?id=42
但我希望 URL 像这样工作:/MA1/DoSurvey/42
根据教程我要修改:
1: Global.asax.cs 加入
RouteConfig.RegisterRoutes(RouteTable.Routes);
进入 Application_Start 方法
2:RouteConfig.cs加入
routes.MapPageRoute("","DoSurvey/{id}","~/MA1/DoSurvey.aspx");
进入 RegisterRoutes 方法
3:添加
using System.Web.Routing;
作为 DoSurvey.aspx 页面中的参考,然后
4:使用获取查询字符串变量
string SurveyIdQueryStringValue = Page.RouteData.Values["id"] as string;
在 DoSurvey.aspx 页面中
我错过了什么?
【问题讨论】:
-
DoSurvey/42或/MA1/DoSurvey/42是否转到 aspx 页面? -
在后面的代码中我对其进行了编码,以便在 id 为空时它会重定向回主页,这就是正在发生的事情。
-
我确实找到了一种更好的方法来使用友好网址,如 (codeguru.com/csharp/.net/net_asp/…)。这似乎有效