1

我有使用 Razor 生成的动态 HTML 属性。

一切似乎都工作正常,除非我生成一个带有空格的属性值,例如:

item.Name = "Organisation Structure";

然后,当我尝试在动态属性中呈现此值时,Razor 认为空格后面的文本是另一个完全不同的属性。

     <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>

请,这个问题的任何解决方案将不胜感激。

4

2 回答 2

3

我通过简单地解决了这个问题String.Replace("","&nbsp")

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

这很好地解决了这个问题。

于 2013-02-11T12:35:02.390 回答
2

你可以试试:

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

@Html.Raw(dynamicLink)
于 2013-02-11T11:06:00.163 回答