2012-07-11 53 views
0

這是真的嗎?我正在Visual Studio中創建一個mvc3應用程序,我希望我用作頭部的圖像作爲返回主頁的鏈接,但由於我只是在本地運行它,因此我將此線用作代碼:Html鏈接不能與localhost一起使用?

<a href="localhost:60060"> 
<img src="../../Content/images/LionLabs.png" alt="Lion logo"> 
</a> 

雖然這不起作用!我做錯了什麼,還是隻是本地主機不能用作這個?

我也只是使用JavaScript方法將href刷新頁面試過,但沒有工作,要麼:(

+0

「這雖然不起作用!」不是非常具有描述性。 **什麼**不起作用?你期望什麼沒有發生? – Oded 2012-07-11 18:42:30

回答

7

由於通過在域默認啓動鏈接,沒有任何理由指定它。你可以只用/

<a href="/"> 
    <img src="../../Content/images/LionLabs.png" alt="Lion logo"> 
</a> 
+0

這工作,謝謝:) – 2012-07-11 19:35:33

+0

@Ethan皮埃爾不要忘記[接受答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。 – 2012-07-11 19:38:29

+0

哈哈看起來像忘了接受這個答案 – CleoR 2014-10-25 18:19:11

0

您已經使用href作爲localhost:60060。這應該是一個頁面(可能是default.html或類似的東西)。

1

的聯繫爲<a href=""><img src="">的鏈接沒有什麼不同。

您不應使用絕對路徑,因爲在部署項目時,站點名稱不會是localhost:60060。

主頁使用

<a href="/"></a> 
0

更改此:

<a href="localhost:60060"> 
    <img src="../../Content/images/LionLabs.png" alt="Lion logo"> 
</a> 

要這樣:

<a href="@Url.Action("Index", "Home")"> 
    <img src="@Url.Content("~/Content/images/LionLabs.png")" alt="Lion logo"> 
</a> 

爲什麼?

最好使用@Url.Action,因爲它將使用您在Global.asax中設置的任何自定義路由。你能想象如果你必須改變你的url路由,修改複雜網站上的每一個鏈接引用嗎? :)

使用@Url.Content,因爲這將正確地解析爲您的應用程序的根,帶走使用../../../../../..的不確定性。它更乾淨!

1

HTML鏈接的工作只是罰款與本地主機:

<a href="http://localhost:60060/"> 
    <img src="../../Content/images/LionLabs.png" alt="Lion logo"> 
</a> 

這裏的問題是,僅僅使用localhost:60060嘗試使用相對路徑,所以瀏覽器實際上是尋找http://localhost:60060/localhost:60060/,這當然是一個無效的路徑。當您需要更改域名(例如,將應用程序部署到Web)時,您不應該在應用程序的頁面之間進行鏈接時使用絕對路徑,因爲這會變成一場噩夢。

爲了使您的代碼更MVC友好,這樣做:

<a href="@Url.Action("Index", "Home")"> 
    <img src="@Url.Content("~/Content/images/LionLabs.png")" alt="Lion logo"> 
</a> 

這裏發生的是,ASP。NET MVC Url幫助器在向用戶提供頁面時提供正確的路徑信息,因此它會自動適應服務器中的任何更改。它也允許你使用你的Routes以達到最佳效果,因爲你可以很容易地改變鏈接的路由(即URL),但仍然使用相同的控制器和視圖。

相關問題