我目前有一个网站,它从一个简单的网站提供静态文件,只指向一个目录,我想通过抓取DropBox中的文件来替换它。
我已经拥有DropBox上的文件并抓住它们很简单但我现在需要一个网站来解析文件的URL并给我访问DropBox上的文件所需的参数。
典型文件网址:
http://companyfiles.mywebsite.com/18/RepZio/companyfiles/subfolder1/SampleFile.docx
我希望配置的路线可以使用:
routes.MapRoute(
name: "Default",
url: "{id}/{dropboxfolder}/companyfiles/{path}",
defaults: new { controller = "CompanyFiles", action = "Index" }
);
我知道我的问题是我的网址中的所有额外/
,我如何解析/companyfiles/
之后的任何内容作为单个参数?
我无法更改被调用的URL,因为它们已存在于我系统中的其他任何位置。
答案 0 :(得分:1)
1。文件路径信息可以通过通配符匹配模式捕获,例如
url: "{id}/{dropboxfolder}/companyfiles/{*path}",
2. 在ASP.net Classic模式中,带扩展名的URL由静态文件处理程序提供。要使所有URL在集成模式下通过ASP.net管道,应在system.webserver.handlers部分添加以下内容
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true" />
<handlers>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
这应该通过asp.net管道将URL扩展。
此致