2012-01-03 95 views
0

我有一個小問題。如何設置ActionLink的像這樣的東西的圖像:如何將ActionLink設置爲圖像

<%= Html.ActionLink("English", "ChangeCulture", "Account", 
new {lang = "en", returnUrl = this.Request.RawUrl }, null)%> 

對於其他的ActionLink我做了這樣的事情:

Html.ActionLink(" ", "About", "Home", new 
{style = "background: url('../../Content/images/img03.jpg')no-repeat center 
right;display:block; height:24px; width:24px;"})  

但在這個例子中這是行不通的。我想以標誌圖像的形式將本地化添加到我的網站。提前致謝。

+0

爲什麼它不會爲這個鏈接工作? – 2012-01-03 17:10:57

+0

我嘗試了很多不同的方法,但老實說,我不知道如何做到這一點。當然關於第一個ActionLink。第二個工作正常。 – user1113254 2012-01-04 00:05:17

+0

我想知道你已經顯示出來的第二個ActionLink如何完全混淆了它的參數。你沒有使用正確的過載。你已經混合了路線值和html屬性。 – 2012-01-04 08:11:36

回答

0

我在這裏看到的一些問題...

首先,你與你的HTML樣式設置paramater的ActionLink的routeValues。添加一個空對象之間:

Html.ActionLink(" ", "About", "Home", null, new 
{style = "background: url('../../Content/images/img03.jpg')no-repeat center 
right;display:block; height:24px; width:24px;"}) 

其次,你將要檢查的圖像的URL是正確的,因爲你使用的是相對路徑。嘗試使用Url.Content來獲取正確的路徑。

第三,url和不重複標誌之間沒有空格可能會影響您的瀏覽器輸出。

+0

謝謝你的回答。也許我寫了不懂的。我想將第一個ActionLink設置爲圖像。第二個工作正常。 – user1113254 2012-01-03 23:50:24

+0

對不起,但我需要你重寫這個問題,然後請。我不明白你想要什麼幫助。 – Richard 2012-01-04 10:18:06

+0

感謝您的關注,但我找到了解決方案。我需要使用 新的{@ class =「EnglishFlag」,而不是空對象。 – user1113254 2012-01-04 22:53:27

0

我一直在使用的HTML幫助

儘管我會建議使用TagBuilder這解決了這個。

/// <summary> 
    /// Create image representation of boolean in form of 
    /// </summary> 
    /// <param name="html">The HTML.</param> 
    /// <param name="boolValue">if set to <c>true</c> [bool value].</param> 
    /// <param name="path">The path.</param> 
    /// <param name="alt">The alt.</param> 
    /// <returns> 
    /// html img tag 
    /// </returns> 
public static string ImageForBool(this HtmlHelper html, bool boolValue, string path,ImageAlt alt) 
{ 
    string trueVal = "tick"; 
    string falseVal = "x"; 
    string img = "<img src=\"{0}\" {1}/>"; 
    string altTag = string.Empty; 
    path += "Content/Actions/"; 
    if (boolValue) 
    { 
    altTag = (alt == null) ? "" : "alt=\"" + alt.trueOption + "\""; 
    return string.Format(img, Path.Combine(path, trueVal) + ".png", altTag); 
    } 
    else 
    { 
    altTag = (alt == null) ? "" : "alt=\"" + alt.falseOption + "\""; 
    return string.Format(img, Path.Combine(path, falseVal) + ".png", altTag); 
    } 
} 

此選項可能是最適合你的

替代方式

使用HTML動作鏈接,並使用與string.replace 使用代碼:

string tag = Html.ActionLink("[toReplaceWithImage]", "ChangeCulture", "Account", 
new {lang = "en", returnUrl = this.Request.RawUrl }, null).ToString() 

tag.Replace("[toReplaceWithImage]", "<img src=\"path\">"); 
相關問題