2013-12-19 35 views
0

我已經有了一個.NET Web API 2應用程序,我已經把api連接起來發送給我一個文件ID,然後從那裏我得到服務器上的唯一文件。不帶擴展名的IIS文件下載

例子:

<a href="api/attachment/232-2323-2323-2323">Download</a> 

我需要它是一個唯一的ID,因爲有可能是在回購協議文件的倍數。然而,當我嘗試點擊下載按鈕,我收到了:

HTTP Error 404.0 - Not Found 
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable. 

我想重寫規則可能是一個很好的行動,但我真的不希望改寫它,我只想讓任何東西/ 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> 

的最佳途徑的任何想法來實現這一目標?

回答

0

我能夠通過創建一個iframe和Src設置爲下載喜歡來解決:

$("body").append('<iframe name="downloadFrame" id="download_iFrame" style="display:none;" src="" />'); 

,然後在C#我設置標題,如:

result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); 
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");