c# - MVC : Ace editor post

标签 c# javascript jquery html asp.net-mvc

我目前正在编写一个 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/

相关文章:

javascript - Tinymce 不保存或提交我的内容

c# - 如何使用 C# 在 Windows 上存储和检索凭据

c# - 使用 GCM 推送通知的请求超时,前 2 -3 次间歇性地工作。但多次失败

javascript - ko.toJSON($root,null,2) 返回错误

java - Selenium Java - 通过 JavascriptExecutor 获取页面源

javascript - 在 CodeIgniter 中使用 AJAX 提交带有图像的表单

javascript - jquery 'change' 事件未在表单中按钮集的图像单击上触发

c# - ExecuteNonQuery 不起作用

c# - 使用带有 LIKE 运算符的 SQLiteParameter 的 SQLite.NET 性能

javascript - 光标锁定时如何获取mouseMovement?