2013-02-11 35 views
1

我有使用Razor生成的動態HTML屬性。在剃刀動態屬性中對WhiteSpace進行編碼

一切似乎除了當我生成一個空格內像一個屬性值,以做工精細:

item.Name = "Organisation Structure"; 

當我再嘗試在一個動態的屬性來呈現這個值,剃鬚刀認爲,空格後的文字是另一個完全不同的屬性。

 <a href="@item.Url" @(!item.HasSubItems ? "data-tab-title=" + item.Name : "")></a> 

這使得錯誤爲:

<a href="/index" data-tab-title="Organisation" structure=""></a> 

,而不是像這樣:

<a href="/index" data-tab-title="Organisation structure"></a> 

我甚至嘗試使用Html.Encode(item.Name)象下面這樣:

<a href="@item.Url" @(!item.HasSubItems ? "data-tab-title=" + Html.Encode(item.Name) : "")></a> 

請,任何 這個問題的解決方案將受到高度讚賞。

回答

3

我簡單地做一個String.Replace("","&nbsp")

<a @(!item.HasSubItems ? "data-tab-title=" + item.Name.Replace(" ","&nbsp") : "") href="@item.Url" ></a> 

這解決了這個問題,而很好地解決了這個問題。

1

你可以嘗試:

@{ 
    var dynamicLink = string.Format("<a href='{0}' {1}></a>", item.Url, (!item.HasSubItems)? "data-tab-title='" + item.Name +"'" : ""); 
} 

@Html.Raw(dynamicLink)