gpt4 book ai didi

asp.net-mvc - 请求 .html 文件时调用 ASP.NET MVC Controller

转载 作者:行者123 更新时间:2023-12-02 11:15:40 25 4
gpt4 key购买 nike

我需要为遗留应用程序添加一些新的生命:)

当请求“静态”HTML 页面时,我想调用 MVC Controller ,以便在将页面返回给客户端之前向页面添加一些标记。

我尝试遵循此线程中找到的方法:How to read web.config settings in .html page?

...但即使我定义了这条路线:

routes.MapRoute(
name: "Topic",
url: "html/{fileName}.html",
defaults: new { controller = "Topic", action = "Index" });

Controller 未被调用。我的 web.config 定义为:

<remove name="WebServiceHandlerFactory-Integrated" />
<add name="HTML" path="*.html" verb="*"
type="System.Web.UI.PageHandlerFactory"
resourceType="File" preCondition="integratedMode" />

我怀疑我需要调用除 PageHandlerFactory 之外的其他东西,或者问题可能完全不同。

更新:我的开发环境正在使用集成管道模式,但我需要检查我的生产环境是否支持它。

最佳答案

如果你这样做:

routes.RouteExistingFiles = true;

您应该会发现这有效 - 即使没有添加处理程序。在 Controller 中,您可以使用 HostingEnvironment.VirtualPathProviderGetFile 方法直接加载 HTML 并对其执行某些操作 - 或者更好的是,仍然使用正常的 MVC View 来呈现与静态文件内容相同,只是添加了内容。

尽管请注意,这意味着任何路由可能捕获的任何文件都将被推送到 MVC 管道中。然而,如果路线和物理路径适当分离,这通常不是一个问题。

关于asp.net-mvc - 请求 .html 文件时调用 ASP.NET MVC Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11319376/

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