asp.net mvc razor布局頁中a標簽的href的跳轉問題


筆者做了一個文件上傳系統,文件上傳后,保存在wwwroot目錄的file文件夾中,並把該文件的路徑保存到數據庫中,

如這樣的一個路徑保存在數據庫:

 

file/b775f487-0127-41e0-9df8-2a5f1624cd87.jpg


上傳成功后,當在home控制器的index頁面中的a標簽中,直接這樣編寫

 

          <a href="@filePath">下載</a> 

頁面生成后,鏈接是

http://localhost:53953/file/b775f487-0127-41e0-9df8-2a5f1624cd87.jpg

 

完全沒有問題  可以正常訪問並下載,但是在note控制器的Detils的頁面下,我使用同樣也是這樣的a標簽指向文件

 

          <a href="@filePath">下載</a> 

可是就不能正常訪問了  生成的鏈接是

http://localhost:53953/note/Detils/file/b775f487-0127-41e0-9df8-2a5f1624cd87.jpg

 

也就是說鏈接中把控制器名和action名也加進去了  ,是無法正常訪問到文件的,

為什么home和index不會加進去呢?  因為路由中默認的是控制器是home  默認的視圖是index  所以鏈接中是不顯示控制器名和視圖名的

 

那么,問題出現了  怎么解決?

 

方法是使用

@Url.Content(filePath)來取代@filePath

 

就不管是在什么控制器下什么視圖下  鏈接始終不含有控制器視圖的名稱了

 

同時 需要注意的是,文件路徑的保存格式需要有所變化了,不然也是無法正常鏈接的  需要已/開頭  如下:

 

 

/file/b775f487-0127-41e0-9df8-2a5f1624cd87.jpg

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM