asp.net路由参数问题

时间:2013-07-01 11:20:46

标签: asp.net .net

我正在开发一个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");

1 个答案:

答案 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”作为路由的有效名称。