【问题标题】:URL Routing Not Working (asp.net 4.5, webforms)URL 路由不工作 (asp.net 4.5, webforms)
【发布时间】: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/…)。这似乎有效

标签: url routing


【解决方案1】:

我将此代码添加到 web.config,一切正常,试试吧

<modules runAllManagedModulesForAllRequests="true">
  <remove name="UrlRoutingModule" />
  <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</modules>
<handlers>
  <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

【讨论】:

    猜你喜欢
    • 2011-06-20
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-08
    • 2016-01-06
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    相关资源
    最近更新 更多