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 に答える