gpt4 book ai didi

asp.net - 这个 Global.asax 路由设置有什么问题?

转载 作者:行者123 更新时间:2023-12-04 20:51:20 25 4
gpt4 key购买 nike

我可能对 ASP.NET 期望过高,但在 Apache 中重写 url 是微不足道的,因此请求如下内容:
http://mysite/myfolder/mypage/niceurlparameter
实际上设法为静态页面提供服务 http://mysite/mypage.html

我如何在 Global.asax 中做到这一点?

我试过这个:

RouteTable.Routes.MapPageRoute("Static HTML", "myfolder/{page}/*", "~/myfolder/{page}.html");

但是当我请求时它一直返回 404 http://mysite/myfolder/mypage/niceurlparameter .

但是,这有效:
RouteTable.Routes.MapPageRoute("Static HTML", "myfolder/{page}.html/*", "~/myfolder/{page}.html");

所以我在请求时确实得到了 mypage.html http://mysite/myfolder/mypage.html/niceurlparameter .

我只想在我的 URL 中去掉“.html”部分。我错过了什么?

更新:
出于某种原因,在前一种情况下,“*”通配符未被接受。

更改为:
RouteTable.Routes.MapPageRoute("Static HTML", "myfolder/{page}/{whatever}", "~/myfolder/{page}.html");

似乎将请求路由到 html 页面,但随后出现错误:
There is no build provider registered for the extension '.html'. 

为什么在世界上它只适用于前一种情况(在 URL 中使用 html),而不是在 html 被遗漏时?

最佳答案

There is no build provider registered for the extension '.html'



您收到此错误是因为静态 html 文件应由 IIS 直接处理。但是,在您的情况下,ASP.NET MVC 框架正在尝试处理类型为 .html 的文件。 ,它不能。

因此,如果您认为这是您需要做的,则必须创建一个新的提供程序并在 web.config 文件中注册。看这个

Custom file extensions for ASP.NET - help needed!

您可以简单地将静态 html 内容更改为 .aspx 文件。一个简单的复制和粘贴就可以完成这项工作,它应该可以正常工作。它将知道如何处理文件类型。

关于asp.net - 这个 Global.asax 路由设置有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10347512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com