我目前正在编写一个 CMS 系统,我使用 ACE 语法高亮器来高亮显示文本框中的一些 HTML。
现在,我有一个显示内容的表单:
<div id="editor">@Html.TextAreaFor(model => model.Body)</div>
语法高亮器使用以下 javacsript 激活:
<script>
var editor = ace.edit("editor");
editor.setTheme("ace/theme/eclipse");
editor.renderer.setShowGutter(false);
editor.getSession().setMode("ace/mode/html");
</script>
但是在我的 Controller 中,我没有得到高亮显示的文本区域的内容,这是正常的,因为语法高亮器生成的 HTML 很复杂。
有人知道如何解决这个问题吗?
最佳答案
在将数据发布到服务器之前,您必须将其分配给隐藏字段或返回到文本区域。这个问题已经有人回答了on StackOverflow here
@Jan Jongboom 在发帖前使用以下代码为ACE编辑器赋值:
<%=Html.HiddenFor(m=>m.Editor, new { @id = "hidden_editor" }) %>
<!-- this is jQuery, but you can use any JS framework for this -->
<script>
$("form").submit(function () {
$("#hidden_editor").val(editor.getSession().getValue());
});
</script>
这是 MVC 2 标记,但可以轻松采用 Razor。
关于c# - MVC : Ace editor post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25404850/