无扩展名的IIS文件下载

无扩展名的IIS文件下载,iis,url-rewriting,asp.net-web-api,iis-8,Iis,Url Rewriting,Asp.net Web Api,Iis 8,我已经有了一个.NETWebAPI2应用程序,我已经连接了API,向我发送了一个文件id,从那里我从服务器获得了唯一的文件 例如: <a href="api/attachment/232-2323-2323-2323">Download</a> 我认为重写规则可能是一个很好的操作,但我并不真的想重写它,我只想允许任何/api/附件,不管其余的是什么 我已经有了一条重写规则,因为我的页面是一个单页应用程序,可以直接响应Default.cshtml,如: <r

我已经有了一个.NETWebAPI2应用程序,我已经连接了API,向我发送了一个文件id,从那里我从服务器获得了唯一的文件

例如:

   <a href="api/attachment/232-2323-2323-2323">Download</a>
我认为重写规则可能是一个很好的操作,但我并不真的想重写它,我只想允许任何/api/附件,不管其余的是什么

我已经有了一条重写规则,因为我的页面是一个单页应用程序,可以直接响应Default.cshtml,如:

 <rewrite>
  <rules>
    <rule name="Default" stopProcessing="true">
      <match url="^(?!Lib|api|Assets|Views|Directives|Services|Controllers|signalr).*" />
      <action type="Rewrite" url="Default.cshtml" />
    </rule>
  </rules>
</rewrite>


关于实现这一点的最佳方法有什么想法吗?

我可以通过创建一个iframe并将src设置为下载来解决这个问题,如:

 $("body").append('<iframe name="downloadFrame" id="download_iFrame" style="display:none;" src="" />');
 $("body").append('<iframe name="downloadFrame" id="download_iFrame" style="display:none;" src="" />');
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");