【发布时间】:2017-03-24 17:08:38
【问题描述】:
我正在使用一个库,该库向我的 Angular 应用程序中的 .axd 路径提交“POST”请求。由于我使用的是 UI-Router,似乎附加到 URL 的#/ 阻止了请求正确到达 DLL。
库中需要到达的网址是:
http://localhost:8080/MyApplication/MyArea/ModuleName#/ThermalLabelWebEditor.axd?_=1478731762000
但是,我从这个“POST”请求中得到的只是页面的 HTML 数据。我相信这是 MVC 以默认方式处理路径的症状,搜索与上述 URL 匹配的页面,而不是访问 DLL。
我想要达到的目标是
routes.IgnoreRoute("{*anything}/ThermalLabelWebEditor.axd/{*pathInfo}");
但是,这在 MVC 中无效。
另外,我在我的区域的Web.config 文件中指定了这个库所需的httpHandlers,主要是:
<system.web>
<httpHandlers>
<add path="ThermalLabelWebEditor.axd" verb="*" type="Neodynamic.Web.ThermalLabelEditor.ThermalLabelWebEditor"/>
...
<system.webServer>
<handlers>
<add name="TLWE" path="ThermalLabelWebEditor.axd" verb="*" preCondition="integratedMode" type="Neodynamic.Web.ThermalLabelEditor.ThermalLabelWebEditor" />
现在,我知道我可以在 Angular 模块的配置中指定 $locationProvider.html5Mode(true);。但是,如果可能的话,我想避免这样做,因为它不能解决必须使用 # 后备的旧版非 HTML5 浏览器的问题。
如何为这个区域(或整个 MVC 应用程序)或RouteConfig.cs 配置我的Web.config 文件,以确保对ThermalLabelWebEditor.axd 的请求将成功完成?
我正在使用 MVC 5、.NET 4.6、Angular 1.5.8 和 UI-Router v0.3.1。
【问题讨论】:
标签: angularjs asp.net-mvc iis asp.net-mvc-5 angular-ui-router