gpt4 book ai didi

asp.net-mvc - ASP.NET MVC 中的静态文件路由

转载 作者:行者123 更新时间:2023-12-05 00:26:36 24 4
gpt4 key购买 nike

我正在开发一个 ASP.NET MVC 应用程序。在这个应用程序中,我需要在请求时动态生成站点地图。我一般都知道如何配置路由。但是,我不确定是否可以为特定文件创建路由。目前,我在 RouteConfig.cs 中有以下内容:

routes.MapRoute(
name: "Sitemap",
url: "resources/sitemap.xml",
defaults: new { controller = "Site", action = "Sitemap" }
);

在我的 SiteController 中,我有以下内容:
public ActionResult Sitemap()
{
// I will build my sitemap.xml file here and return it.
}

当我在浏览器的地址栏中输入/resources/sitmap.xml 时,我注意到我的 Sitemap() 操作永远不会被触发。甚至可以在 ASP.NET MVC 中为特定文件设置路由吗?如果是这样,怎么做?

谢谢,

最佳答案

所以你必须做一些步骤 -

第 1 步 - 映射 xml 扩展以由 .Net 处理以进行路由
<system.webServer> 下的 Web.config 中添加以下部分-

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

第 2 步 - 定义您的路由并覆盖与现有文件匹配的请求。
routes.RouteExistingFiles = true;

routes.MapRoute(
name: "Sitemap",
url: "{site}.xml",
defaults: new { controller = "Site", action = "Sitemap", site = UrlParameter.Optional }
);

然后 步骤 3 - 尝试访问 /SiteMap.xml ,您将获得 Controller Action 命中。

关于asp.net-mvc - ASP.NET MVC 中的静态文件路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21934150/

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