0

AJAXを使用してテーブル内にUI要素を挿入する必要があります。要素のIDがあり、次のように値を書き込むことができます。

$('#s-@ViewData.Model.SomeID').html('<input type="submit" id="submitInternalData" value="" class="icon-ok"/>');

それはうまくいきます

次に、ドロップダウン要素を作成する必要があります。

$('#v-@ViewData.Model.SomeID').html('<b>some text:</b> @Html.DropDownListFor(model => model.VMtoAdd, (IEnumerable<SelectListItem>)ViewBag.VMServers, "your server");');

Html.DropDownListForそして、新しい行を挿入するためにエラーが発生しました

どうすれば修正できますか?

4

2 に答える 2

1

これで何を達成しようとしているのか、サーバーからマークアップを直接生成しない理由はわかりませんが、エンコードしてみてください。

$('#v-@ViewData.Model.SomeID').html('@HttpUtility.JavaScriptStringEncode(Html.DropDownListFor(model => model.VMtoAdd, (IEnumerable<SelectListItem>)ViewBag.VMServers, "your server").ToHtmlString())');

より良いアプローチは、このドロップダウンを含む部分ビューを返すコントローラー アクションを用意し、AJAX を使用してこのコントローラー アクションを呼び出し、部分的な結果で DOM を単純に更新することです。

于 2012-10-15T11:20:57.603 に答える
0

endOflines を削除する解決策がペアであることがわかりました: .Replace("\n", " ").Replace("\r", " "))

$('#DestinationID').html('@Html.Raw(Html.DropDownListFor(model => model.VMtoAdd, (IEnumerable<SelectListItem>)ViewBag.VMServers, "your server").ToString().Replace("\n", " ").Replace("\r", " "))');
于 2012-10-15T20:18:44.583 に答える