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 的解决方案是 pair: .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 回答