Asp.net mvc 4 如何在asp.net mvc 4中配置此路由?

Asp.net mvc 4 如何在asp.net mvc 4中配置此路由?,asp.net-mvc-4,routing,asp.net-mvc-routing,Asp.net Mvc 4,Routing,Asp.net Mvc Routing,我目前有一个网站,是从一个简单的网站,只是指向一个目录服务静态文件,我想取代它的抓取文件从DropBox 我已经有了DropBox上的文件,抓取它们很容易,但我现在需要一个网站,将解析到文件的URL,并给我的参数,我需要访问DropBox上的文件 典型文件URL: http://companyfiles.mywebsite.com/18/RepZio/companyfiles/subfolder1/SampleFile.docx 我所配置的我希望能够工作的路线: routes.MapRoute

我目前有一个网站,是从一个简单的网站,只是指向一个目录服务静态文件,我想取代它的抓取文件从DropBox

我已经有了DropBox上的文件,抓取它们很容易,但我现在需要一个网站,将解析到文件的URL,并给我的参数,我需要访问DropBox上的文件

典型文件URL:

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" }
            );
我知道我的问题是我的URL中所有额外的
/
,如何将
/companyfiles/
后面的内容解析为单个参数


我无法更改正在调用的URL,因为它们已经存在于我的系统中的任何其他位置。

1。文件路径信息可以通过通配符匹配模式捕获,如

url: "{id}/{dropboxfolder}/companyfiles/{*path}",
2.在ASP.net经典模式下,带有扩展名的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>

这将使扩展名为的URL通过asp.net管道


关于

尝试使用一个catchall短语
url:{id}/{dropboxfolder}/companyfiles/{*path},
直到我有一个像.docx这样的文件扩展名,因此,我似乎需要以某种方式忽略已知的文件类型,以获得我的取货路线。文件是否
http://companyfiles.mywebsite.com/18/RepZio/companyfiles/subfolder1/SampleFile.docx
是否实际存在于该位置?如果有点像
http://companyfiles.mywebsite.com/18/RepZio/companyfiles/subfolder1/SampleFile.docx12
?似乎是这样。我的问题现在结帐了吗