我正在研究ASP.NET MVC Web应用程序,我想在我的应用程序的URL中允许所有文件扩展名。我试过添加
<add name="ChatFileHandler"
path="*.docx"
verb="GET"
type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0" />
在Web.config中的/<system.webServer>/<handlers>
内,但它只允许在url中使用.docx文件扩展名。我希望我的网址为/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)
{ }
在Web.config中使用带有path =“*。docx”的<add ChatFileHandler ... />
。添加这些我能够在控制器的action方法中获取fileName和datatype。但我不想为每个文件扩展名添加处理程序,因为它们将在数百个文件扩展名中。
答案 0 :(得分:2)
您可以通过在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>