在Javascript中处理多行HTML

在Javascript中处理多行HTML,javascript,jquery,html,asp.net-mvc,Javascript,Jquery,Html,Asp.net Mvc,我正在使用Javascript定义网页上的按钮行为。我所追求的行为是在我的页面的某个地方插入一些新的HTML,但是我想使用MVC扩展方法HTML.EditorFor来定义将要插入的新HTML 我想做的是: $("#myButton").click(function() { $("@(Html.EditorFor(x => x.SomeModelProperty))").insertBefore(<somewhere>); }); $("&lt;div&

我正在使用Javascript定义网页上的按钮行为。我所追求的行为是在我的页面的某个地方插入一些新的HTML,但是我想使用MVC扩展方法
HTML.EditorFor
来定义将要插入的新HTML

我想做的是:

$("#myButton").click(function() {
    $("@(Html.EditorFor(x => x.SomeModelProperty))").insertBefore(<somewhere>);
});
$("&lt;div&gt;
&lt;label        for=&quot;ModelData_SomeModelProperty&quot;&gt;SomeModelProperty&lt;/label&gt;
&lt;/div&gt;
&lt;div&gt; .... (you get the idea)
在理想情况下,我可以使用
EditorFor
以某种方式在一行上呈现上述所有内容,或者使用某种特殊的Javascript语法来定义多行字符串(如在C#中使用单引号),但到目前为止,我还是空白

我尝试调用
到htmlstring
并手动编辑结果字符串以删除换行符,我知道我可以使用
/
在Javascript中转义新行,但这样做的问题是,我必须处理转义的HTML,它看起来有点像以下内容:

$("#myButton").click(function() {
    $("@(Html.EditorFor(x => x.SomeModelProperty))").insertBefore(<somewhere>);
});
$("&lt;div&gt;
&lt;label        for=&quot;ModelData_SomeModelProperty&quot;&gt;SomeModelProperty&lt;/label&gt;
&lt;/div&gt;
&lt;div&gt; .... (you get the idea)

我只是想知道是否有人尝试过类似的方法,可能会有更优雅的方法?

一种方法是将其写入html中的隐藏div,而不是直接写入javascript。然后,您可以从dom中读取它以在脚本中使用

所以你的页面会有一个

<div style="display:none" id="hiddenArea">

...insert whatever you want in here 
with newline or whatever...

</div>

…在这里插入您想要的任何内容
用新线什么的。。。
然后在javascript中:

$("<div>
<label for="ModelData_SomeModelProperty">SomeModelProperty</label>
</div>
<div> ....
$("#myButton").click(function() {
    var source = $("#hiddenArea").html();
    $(source).insertBefore(<somewhere>);
});
$(“#我的按钮”)。单击(函数(){
var source=$(“#hiddenArea”).html();
$(source.insertBefore();
});

您可以创建一个HTML帮助程序,以便更好地控制返回的内容和格式


Razor代码在发送到视图之前在服务器上进行解析。你总是可以在一个隐藏的
中生成它,然后点击按钮来显示和/或克隆它。是的,在看到第二个答案后,我正试图按照这些思路构思一些东西。不幸的是,我需要在按下按钮时调用
Html.EditorFor
的结果,而不是在呈现页面时,因此我认为我无法做到这一点…更新:上述内容-我找到了一种解析并替换所需的运行时变量的方法,使之成为更有效的方法。谢谢伟大的如果你的解析问题变得一团糟,你可能想看看类似于js TemplatingHanks的东西是的,这和上面的结合证明是我的解决方案。以前没有深入研究过自定义html助手,所以这是一次很好的体验!