gpt4 book ai didi

asp.net-mvc - Javascript 文件的 MVC Action 路径

转载 作者:行者123 更新时间:2023-12-02 08:43:10 25 4
gpt4 key购买 nike

我正在尝试添加一个 mvc 路由以从 Controller 生成一个 javascript。我添加了以下路线,但它不起作用:

routes.MapRouteWithName(
"DataSourceJS", // Route name
"Scripts/Entities/{controller}/datasource.js", // URL with parameters
new { controller = "Home", action = "DataSourceJS"} // Parameter defaults,
, null
);

但是,如果我将路由更改为没有“.js”并导航到“Scripts/Entities/{controller}/datasource”,它会起作用。但是我需要在那里有 .js 文件扩展名,我该如何让它工作?

最佳答案

how do I make this work?

IIS 拦截该请求,因为它包含一个文件扩展名并劫持它,认为它是一个静态文件,而不是将它传递给您的应用程序。

要使其正常工作,您应该告诉 IIS 不要那样做。 <system.webServer>里面部分您可以添加以下处理程序以指示具有指定模式的请求应由托管管道处理:

<system.webServer>
<handlers>
...
<add name="ScriptsHandler" path="Scripts/Entities/*/datasource.js" verb="GET" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>

有些人可能还会告诉您使用:

<modules runAllManagedModulesForAllRequests="true" />

但我不建议您这样做,因为这意味着所有对静态资源的请求现在都将流经托管管道,这可能会对您的应用程序产生负面的性能开销。处理程序语法允许您有选择地仅为某些路由模式和 HTTP 动词启用此功能。

关于asp.net-mvc - Javascript 文件的 MVC Action 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14745178/

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