ASP.NET路由处理程序获胜';t ASPX文件的触发器
本文关键字:ASPX 文件 触发器 路由 NET 处理 程序 获胜 ASP | 更新日期: 2023-09-27 18:00:25
假设我有一个这样定义的路线:
routes.MapPageRoute(""
, "{language}/customerservice.aspx"
, "~/customerservice.aspx"
, false
, new RouteValueDictionary { {"language", "en"} });
在/customerservice.aspx中,我填充了这样一个文字:
lit_test.Text = RouteData.Values["language"].ToString();
当我导航到/customerservice.aspx时,我希望文本为"en",但我得到了一个null引用异常。在/en/customerservice.aspx上,它的行为正如我所期望的那样。
有没有一种方法可以为磁盘上存在的aspx文件运行路由?
编辑:
这样配置的路线:
routes.RouteExistingFiles = true;
routes.MapPageRoute(""
, "customerservice.aspx"
, "~/customerservice.aspx"
, false
, new RouteValueDictionary { { "language", "en" } });
将导致文字填充为"en",但是带有可选语言参数的第一个场景仍然失败,RouteExistingFiles标志设置为true。
谢谢!
使用RouteExistingFiles属性强制所有请求(即使是磁盘上存在的文件)通过路由。
routes.RouteExistingFiles = true;
搜索RouteExistingFiles以查找更多信息,如打开RouteExisting Files时的注意事项。