1

在我的网站项目(不是 MVC,不是 Web 应用程序)的 global.asax 中,MapPageRoute 不会让我映射到带有扩展名的页面。

例如:

routes.MapPageRoute("GetMobilePassForAttendee", "Pass/Attendee/{attendeeId}", "~/GetMobilePass.aspx");

按预期工作,但是

routes.MapPageRoute("GetMobilePassForAttendee", "Pass/Attendee/{attendeeId}/pass.pkpass", "~/GetMobilePass.aspx");

返回 404。

有谁知道为什么?

也许我应该使用 URL 重写,但我读过的所有材料都建议我使用路由。

4

2 回答 2

0

这对我有用:

routes.MapPageRoute("FederationMetadataRoute", "FederationMetadata/2007-06/{file}", "~/FederationMetadata/2007-06/FederationMetadata.aspx")

然后我只是检查{file}参数以确保它等于FederationMetadata.xml

所以在你的情况下,只需设置Pass/Attendee/{attendeeId}/pass.pkpassPass/Attendee/{attendeeId}/{pkpass}

并检查{pkpass}以确保它pass.pkpass在您的页面上等于。

于 2012-12-03T14:07:31.150 回答
0

你有没有单独测试过“pass.pkpass”页面,比如说attendeeid=1,看看Pass/Attendee/1/pass.pkpass是不是没有路由的工作页面?

因为如果这是一个工作页面,.NET 路由在这种情况下将不起作用。它将跳过路由并加载实际的“Pass/Attendee/1/pass.pkpass”页面。

于 2012-10-05T06:32:49.517 回答