gpt4 book ai didi

jquery - 使用 @HTML 助手 DropDownList 更新 .html

转载 作者:行者123 更新时间:2023-12-01 06:22:38 25 4
gpt4 key购买 nike

MVC4、C#、jQuery、Razor View (.cshtml)

我正在尝试使用 @HTML.DropDownList 更新节点的 .html():

<script type="text/javascript">
$('#CmpMASttF').html('@Html.DropDownList("CmpAdrsSt.State", (IEnumerable<SelectListItem>)ViewBag._State) @Html.ValidationMessageFor(m => m.CmpAdrsSt.State) ');
</script>

这对于 @HTML.EditorFor 来说效果很好:

$('#CmpMASttF').html('@Html.EditorFor(m => m.CmpAdrsSt.State) @Html.ValidationMessageFor(m => m.CmpAdrsSt.State) ');

这是正在更新的节点:

        <tr class="CmpMA"><td tate: </td>
<td colspan="4" ><span id="CmpMASttF" class="editor-field"></span> </td></tr>

@HTML.DropDownList 代码本身工作正常,因此这不是问题的根源:

        <tr><td>State: </td>
<td colspan="4"><span class="editor-field">
@Html.DropDownList("CmpAdrsSt.State", (IEnumerable<SelectListItem>)ViewBag._State)
@Html.ValidationMessageFor(m => m.CmpAdrsSt.State)</span> </td></tr>

当我尝试使用 @HTML.DropDownList 和 jQuery .html() 更新节点时,javascript block 中的所有代码都被禁用。

我尝试对字符串进行编码:

var test = '@Ajax.JavaScriptStringEncode("Html.DropDownList(\"CmpAdrsSt.State\",(IEnumerable<SelectListItem>)ViewBag._State)")'

但是当注入(inject)到 .html() 中时,它会呈现为字符串而不是 HTML DropDownList 帮助程序(在 HTML 之前添加 @,“@HTML.DropDownList ...,没有区别)。

如何使用 @HTML.DropDownList 更新节点的 .html() ?

谢谢

最佳答案

Html 帮助程序注入(inject)的有趣使用... Html.DropDownList 生成多行,生成未终止的 JavaScript 字符串。您打算如何解决这个问题?

为什么不将它注入(inject)到虚拟脚本模板 div 中,然后让 JQuery 简单地复制它?

<script id="template" type="text/template">
@Html.DropDownList("CmpAdrsSt.State", (IEnumerable<SelectListItem>)ViewBag._State) @Html.ValidationMessageFor(m => m.CmpAdrsSt.State)
</script>

然后使用复制:

$('#CmpMASttF').html($('#template').html());

与尝试将 HTML 注入(inject) Javascript 字符串文字相比,我更喜欢这样做,因为这样可以更好地将 UI 与代码分离。

关于jquery - 使用 @HTML 助手 DropDownList 更新 .html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17904426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com