允许 ASP.NET MVC URL 中的所有扩展
Allow all extensions in ASP.NET MVC URL
我正在开发 ASP.NET MVC 网络应用程序,我想在我的应用程序 URL 中允许所有文件扩展名。我试过添加
<add name="ChatFileHandler"
path="*.docx"
verb="GET"
type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0" />
inside /<system.webServer>/<handlers>
in Web.config 但它只允许 url 中的 .docx 文件扩展名。我希望我的 url 成为 /Download/{FileName}.extension
。
我怎样才能用更少的解决方法实现我想要的功能。
此致。
编辑:
我还尝试在 AreaRegistration 中添加以下路由设置。
context.MapRoute(
"FileDownload",
"Download/{fileName}.{datatype}",
new { controller = "Download", action = "Download", fileId = UrlParameter.Optional, fileName = UrlParameter.Optional }
);
控制器:
public ActionResult Download(string fileId, string fileName, string datatype)
{ }
连同 <add ChatFileHandler ... />
Web.config 中的 path="*.docx"。添加这些我能够在控制器的操作方法中获取文件名和数据类型。但我不想为每个文件扩展名添加处理程序,因为它们将成百上千。
您可以通过在 web.config
中添加以下处理程序来禁用特定路径(和 HTTP 动词)的静态文件处理程序:
<system.webServer>
<!-- -->
<handlers>
<add name="Download" path="/Download/*" verb="GET" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
我正在开发 ASP.NET MVC 网络应用程序,我想在我的应用程序 URL 中允许所有文件扩展名。我试过添加
<add name="ChatFileHandler"
path="*.docx"
verb="GET"
type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0" />
inside /<system.webServer>/<handlers>
in Web.config 但它只允许 url 中的 .docx 文件扩展名。我希望我的 url 成为 /Download/{FileName}.extension
。
我怎样才能用更少的解决方法实现我想要的功能。
此致。
编辑: 我还尝试在 AreaRegistration 中添加以下路由设置。
context.MapRoute(
"FileDownload",
"Download/{fileName}.{datatype}",
new { controller = "Download", action = "Download", fileId = UrlParameter.Optional, fileName = UrlParameter.Optional }
);
控制器:
public ActionResult Download(string fileId, string fileName, string datatype)
{ }
连同 <add ChatFileHandler ... />
Web.config 中的 path="*.docx"。添加这些我能够在控制器的操作方法中获取文件名和数据类型。但我不想为每个文件扩展名添加处理程序,因为它们将成百上千。
您可以通过在 web.config
中添加以下处理程序来禁用特定路径(和 HTTP 动词)的静态文件处理程序:
<system.webServer>
<!-- -->
<handlers>
<add name="Download" path="/Download/*" verb="GET" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>