0

文字列の形でコントローラーに到達する文字列があります。次の要素テンプレートを持つ List(Model.ToParticipantList) です。

string.Format("<li id=\"Id_{0}" style=\"font-weight: bold; margin-top: 1px; list-style-type: none; display: inline; margin-bottom: 3px; cursor: pointer; font-size: 11px; color: Black; padding-top: 1px; padding-bottom: 1px; margin-left: 2px; width: 150px;\" 
onclick=\"RemFromList('{0}__#{2}');\">
<a>{1}</a>
</li>,", el.Id, el.Name, "To"));

これを jQuery 関数に渡して、次の結果を得たいと思います。

<li id="Id_1" style="font-weight: bold; margin-top: 1px; list-style-type: none; display: inline; margin-bottom: 3px; cursor: pointer; font-size: 11px; color: Black; padding-top: 1px; padding-bottom: 1px; margin-left: 2px; width: 150px;" onclick="RemFromList('1__#To');">
<a>System System</a>
</li> 

これは機能します:

             document.getElementById('To1').innerHTML=@Html.Raw(Model.ToParticipantList);  //this works 
          // $("#To1").html('@Html.Raw(Model.ToParticipantList)');  //this doesn't 
          // $("#To1").append('@Html.Raw(Model.ToParticipantList)'); //this doesn't 

最後の2つの例で何が間違っていますか?

4

1 に答える 1

0

HTMLを挿入するためのどのアプローチも機能するはずです。この簡単な例をとると:

<div id="div1"></div>
<div id="div2"></div>
<div id="div3"></div>
<script type="text/javascript">
   document.getElementById( 'div1' ).innerHTML = '@Html.Raw("<li>Using getElementById</li>")';
   $( "#div2" ).html( '@Html.Raw("<li>Using jQuery html</li>")' );
   $( "#div3" ).append( '@Html.Raw("<li>Using jQuery append</li>")' );
</script>

このHTMLをDOMでレンダリングします。

<div id="div1"><li>Using getElementById</li></div>
<div id="div2"><li>Using jQuery html</li></div>
<div id="div3"><li>Using jQuery append</li></div>

基本的に、それらはすべて同じ結果を達成します。例に示していないコードで何かが起こっている必要があります。コードリストで、getElementByIdを使用すると、jQueryhtmlおよびappendメソッドの場合のようにHtml.Raw引用符で囲まれていないことに気付きました。ToParticipantListに含まれる文字列に一重引用符を含めると、機能しません。

于 2012-04-24T18:17:55.457 に答える