我正在开发一个asp.net网络论坛项目。
我在global.asax
中使用路由。
我在http://abc.com/DailyUsernameReport/fahad
这样的参数中发送了用户名,它可以正常使用但是当我发送像http://abc.com/DailyUsernameReport/fahad.mahmood
这样的参数时,它给了我一个错误。
此处 fahad 和 fahad.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");
答案 0 :(得分:0)
尝试更新您的路线约束以接受诸如abc.xyz之类的名称,请参阅msdn文章了解更多详情h here
e.g。
routes.MapPageRoute("Reports_Daily_ByUsername",
"DailyUsernameReport/{Name}",
"~/Reports/UNReportsDaily.aspx",
true,
new RouteValueDictionary
{{"Name", "^[a-z]+\.?[a-z]*$}
);
我创建的正则表达式将接受“Abc”和“Abc.xyz”作为路由的有效名称。