通过 Javascript 编码写入屏幕的 Html 助手

发布于 2024-10-21 02:14:05 字数 204 浏览 1 评论 0原文

我想通过 Javascript 将使用 Html 助手创建的元素添加到屏幕,如下所示:

var element = '<%: Html.TextBoxFor(d => d.Item) %>';
$('body').append(element)

然后如何正确编码该元素,使其安全,同时将 html 写入屏幕?

I'm wanting to add an element created using an Html helper to the screen via Javascript like so:

var element = '<%: Html.TextBoxFor(d => d.Item) %>';
$('body').append(element)

How do I then properly encode this element so it's safe but also writes the html to the screen?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

他不在意 2024-10-28 02:14:05

极其丑陋,但它可能有效:

var element = '<%= Html.TextBoxFor(d => d.Item).ToHtmlString() %>';
$('body').append(element);

如果你想确保正确的编码:

var element = '<%= HttpUtility.JavaScriptStringEncode(Html.TextBoxFor(d => d.Item).ToHtmlString()) %>';
$('body').append(element);

更好的解决方案:

$('body').append(
    $('<input/>', {
        name: 'Item',
        value: '<%= Model.Item %>'
    })
);

Extremely ugly but it might work:

var element = '<%= Html.TextBoxFor(d => d.Item).ToHtmlString() %>';
$('body').append(element);

and if you want to ensure proper encoding:

var element = '<%= HttpUtility.JavaScriptStringEncode(Html.TextBoxFor(d => d.Item).ToHtmlString()) %>';
$('body').append(element);

A better solution:

$('body').append(
    $('<input/>', {
        name: 'Item',
        value: '<%= Model.Item %>'
    })
);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文