2017-03-27 80 views
1

我可以使用直接鏈接將上傳的文件下載到Azure,似乎是最快和最簡單的方法。絕不是最安全或最聰明的。但是,當我在Href中鏈接到它時,它會忽略所有空格,這意味着如果用戶上載名稱中有空格的文檔,則它不會正確搜索。在搜索時,如何修改我的代碼以用%替換空格?屬性有一個空間,並且Href忽略它後面的所有內容

這是我的代碼; 點擊鏈接下載文件;

<a [email protected]@[email protected]@item.Attachment>Download</a> 

控制器

[HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult Download(string id) 
    { 
     string path = @"https://filestorageideagen.blob.core.windows.net/documentuploader/"; 

     return View(path + id); 
    } 
+0

HttpUtility.UrlEncode可能是? –

+0

查看Html.Encode和Html.Raw。我們使用這兩者的組合來完成與您相似的任務。這讓我刪除了@符號。 – BrianLegg

回答

1

根據你的描述,我已經測試了這個問題。下面是詳細信息,你可以參考他們:

測試圖像:https://brucechen.blob.core.windows.net/images/hello world.jpg

HttpUtility.UrlEncodeUrlHelper.Encode

此方法將編碼空間,以加號(+),編碼的BLOB(文件)時,名稱,您可以獲得https://brucechen.blob.core.windows.net/images/hello+world.jpg,但此時無法通過瀏覽器訪問該文件。

Uri.EscapeUriString

這是一個相當於JavaScript的encodeURIComponent()可能使用這種方法,你可以得到https://brucechen.blob.core.windows.net/images/hello%20world.jpg時編碼空間%20

根據你的情況,你可以利用Uri.EscapeUriString來編碼你的url字符串。此外,%20之前使用的是?+之後,有關更多詳細信息,請參閱此issue

相關問題