编码通过Javascript写入屏幕的Html帮助程序

编码通过Javascript写入屏幕的Html帮助程序,javascript,asp.net-mvc,asp.net-mvc-2,encoding,Javascript,Asp.net Mvc,Asp.net Mvc 2,Encoding,我想通过Javascript将使用Html助手创建的元素添加到屏幕上,如下所示: var element = '<%: Html.TextBoxFor(d => d.Item) %>'; $('body').append(element) var元素='d.Item)%>; $('body')。追加(元素) 然后如何正确编码此元素,使其既安全又能将html写入屏幕?非常难看,但它可能会工作: var element = '<%= Html.TextBoxFor(d =

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

var element = '<%: Html.TextBoxFor(d => d.Item) %>';
$('body').append(element)
var元素='d.Item)%>;
$('body')。追加(元素)

然后如何正确编码此元素,使其既安全又能将html写入屏幕?

非常难看,但它可能会工作:

var element = '<%= Html.TextBoxFor(d => d.Item).ToHtmlString() %>';
$('body').append(element);
var元素='d.Item).ToHtmlString()%>;
$('body')。追加(元素);
如果要确保正确编码,请执行以下操作:

var element = '<%= HttpUtility.JavaScriptStringEncode(Html.TextBoxFor(d => d.Item).ToHtmlString()) %>';
$('body').append(element);
var元素='d.Item).ToHtmlString())%>;
$('body')。追加(元素);
更好的解决方案:

$('body').append(
    $('<input/>', {
        name: 'Item',
        value: '<%= Model.Item %>'
    })
);
$('body')。追加(
$('', {
名称:'项目',
值:“”
})
);

Ew。不要像那样把MVC和JavaScript混合在一起。将JSON写入您的javascript,如果不能与现有MVC一起使用,则使用javascript视图/呈现系统。它成功了!事实上,它还可以使用