Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何向ASP.NET Core 2中的所有Razor页面添加.html url后缀?_C#_Asp.net Mvc_Asp.net Core Mvc - Fatal编程技术网

C# 如何向ASP.NET Core 2中的所有Razor页面添加.html url后缀?

C# 如何向ASP.NET Core 2中的所有Razor页面添加.html url后缀?,c#,asp.net-mvc,asp.net-core-mvc,C#,Asp.net Mvc,Asp.net Core Mvc,我有一个ASP.NET Core 2.0 MVC应用程序,它使用存储在项目树/pages文件夹下的Razor页面 项目是使用默认路由等设置的 我希望所有的Razor页面在浏览器的地址栏中都有.html扩展名 文件/Pages/test.cshtml当前可通过访问获取。我希望这个页面可以通过 我试图理解路由设置,但未能理解到足以提供解决方案的程度 我应该在哪里写什么才能通过.html后缀获得文件?为此定义了一个路径,如下所示 routes.MapRoute( "MyHtml", "{control

我有一个ASP.NET Core 2.0 MVC应用程序,它使用存储在项目树/pages文件夹下的Razor页面

项目是使用默认路由等设置的

我希望所有的Razor页面在浏览器的地址栏中都有.html扩展名

文件/Pages/test.cshtml当前可通过访问获取。我希望这个页面可以通过

我试图理解路由设置,但未能理解到足以提供解决方案的程度


我应该在哪里写什么才能通过.html后缀获得文件?

为此定义了一个路径,如下所示

routes.MapRoute(
"MyHtml",
"{controller}/{action}.html",
new { controller = "Home", action = "Index" });
并将
HtmlFileHandler
添加到web.config。和
.html
路由现在可以工作了

<handlers>
  <add name="HtmlFileHandler" path="*.html" verb="GET" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>


您有什么特殊原因需要它们以这种方式结束吗?这不是MVC应用程序的正常方式。这是一个X/Y问题的开始。Url稳定性。Url中有.html后缀可能会有什么问题?Url稳定性~该网站已经作为纯静态页面存在。该网站目前作为ASP.NET Core 2 MVC项目重新实现。我更喜欢保持外部URL不变。您是否考虑过为此设置某种重定向规则?请与OP确认它们是指标准路由或Razor页面。两者的路线不同。谢谢,好主意。我测试了它的控制器,它似乎工作。然而,我最初谈论的是Razor页面,而不是基于控制器的视图。@alik也许这对您有帮助,但它没有帮助。它讨论通常位于wwwroot文件夹内的静态页面。我的文件是动态的,有一个cshtml扩展名,可选地由一个C#model(但不是控制器)支持,它们支持母版页(通常是_Layout.cshtml),它们应该位于/pages文件夹中。