【问题标题】:asp.net route parameter issueasp.net 路由参数问题
【发布时间】:2013-07-01 22:09:04
【问题描述】:

我正在开发一个 asp.net 网络论坛项目。

我在global.asax 中使用路由。

我在http://abc.com/DailyUsernameReport/fahad 之类的参数中发送用户名,它可以正常工作,但是当我发送http://abc.com/DailyUsernameReport/fahad.mahmood 之类的参数时,它给了我一个错误。

这里 fahadfahad.mahmood 是我要发送的用户名。

错误是:

"HTTP Error 404.0 - Not Found The resource you are looking for has been removed, had its name changed, or is temporarily unavailable."

任何用户名都有“。”它给出了错误我该如何克服这个问题?

Global.asax 值为:

routes.MapPageRoute("Reports_Daily_ByUsername", "DailyUsernameReport/{Name}",     "~/Reports/UNReportsDaily.aspx");
 routes.MapPageRoute("Reports_Daily_ByUsername_Month", "DailyUsernameReport/{Name}/{Month}", "~/Reports/UNReportsDaily.aspx");
routes.MapPageRoute("Reports_Monthly_ByUsername", "MonthlyUsernameReport/{Name}", "~/Reports/UNReportMonthly.aspx");
 routes.MapPageRoute("Reports_Yearly_ByUsername", "YearlyUsernameReport/{Name}", "~/Reports/UNReportYearly.aspx");

【问题讨论】:

  • 你能分享一下你重新路由请求的 global.asax 吗?
  • 是的,我已经分享了 global.asax 文件内容
  • 如果你用谷歌搜索“asp.net mvc dot in route parameter”,你会在 stackoverflow 上找到几个问题。您是否尝试过这些页面上建议的解决方案?
  • 是的,我尝试了所有但没有任何效果。

标签: asp.net .net


【解决方案1】:

尝试更新您的 Route 约束以接受 abc.xyz 之类的名称,请参阅 msdn 文章了解更多详细信息 hhere

例如

routes.MapPageRoute("Reports_Daily_ByUsername",
        "DailyUsernameReport/{Name}",
        "~/Reports/UNReportsDaily.aspx",
        true,
        new RouteValueDictionary 
            {{"Name", "^[a-z]+\.?[a-z]*$}
       );

我创建的正则表达式将接受“Abc”和“Abc.xyz”作为路由的有效名称。

【讨论】:

  • 它给正则表达式一个错误“错误的编译请求”。
猜你喜欢
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 2023-01-25
  • 2016-07-10
  • 2013-11-13
相关资源
最近更新 更多