在Javascript中处理多行HTML
Handling multi-line HTML inside Javascript
我正在使用Javascript定义网页上的按钮行为。我所追求的行为是在页面的某个地方插入一些新的HTML,但我想使用MVC扩展方法Html.EditorFor
来定义将要插入的新HTML。
我想做的是:
$("#myButton").click(function() {
$("@(Html.EditorFor(x => x.SomeModelProperty))").insertBefore(<somewhere>);
});
我遇到的问题是,调用EditorFor
返回的MvcHtmlString
呈现为多行HTML,导致Javascript:无效
$("<div>
<label for="ModelData_SomeModelProperty">SomeModelProperty</label>
</div>
<div> ....
在理想的情况下,我可以让EditorFor
以某种方式在一行上呈现以上所有内容,或者使用某种特殊的Javascript语法来定义多行字符串(比如在C#中使用单引号),但到目前为止,我还处于空白状态。
我试过调用ToHtmlString
并手动编辑生成的字符串以删除换行符,我知道我可以使用/
来转义Javascript中的新行,但这样做的问题是,我必须处理转义的HTML,它看起来有点像以下内容:
$("<div>
<label for="ModelData_SomeModelProperty">SomeModelProperty</label>
</div>
<div> .... (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中:
$("#myButton").click(function() {
var source = $("#hiddenArea").html();
$(source).insertBefore(<somewhere>);
});
您可以创建一个HTML帮助程序,以便对返回的内容和格式进行更多控制。
http://www.codeproject.com/Tips/720515/Custom-HTML-Helper-for-MVC-Application
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 导入jQuery脚本获胜'我不处理html文件
- 处理HTML字段集's大小
- 生成pdf或其他非html文件时的错误处理
- AngularJS&Google可视化-使用状态更改处理程序(Google API)在HTML页面上查看$sco
- 如何启用Emmet'的选项卡键处理程序(HTML快捷方式)
- 处理HTML类型'电子邮件''url'使用JavaScript
- Html<输入模式>使用JavaScript处理-超过时失败
- Ajax在使用onclick选项时无法处理HTML表单中的提交按钮
- 如何使用angular和bindings处理html(?)
- 如何在angular js/HTML中处理数组
- 处理html列表中的javascript对象
- HTML 5 访问并处理 iphone 手电筒
- 文件下载html与错误处理FileNotFound
- Html+javascript处理网站中的语言
- 将数据从HTML表单传递和处理到外部JS时出现问题
- 加载文档时的HTML onClick事件处理
- NiceScroll无法处理Html
- 将事件处理程序放在HTML按钮上,而不覆盖其默认功能
- Rails link_to帮助器-提供onclick属性摆脱:remote =>true(动作作为HTML处理)