如何在ASP.NET MVC5应用程序中使用ACE for TextAreaFor?

时间:2017-12-12 11:53:07

标签: javascript jquery asp.net-mvc c#-4.0 ace-editor

我正在尝试ACE编辑javaScript目的但是当我点击保存按钮时,我无法发布我的编辑器数据,显示数据库中的NULL值。 但是当我使用普通Textarea而没有ACE时,我的数据会正确保存。

这是我的CSHTML代码。

<div class="form-group row">
    <div class="col-lg-11" id="JavaScriptEditor">
        @Html.Label("JavaScript", new { @class = "control-label" })
        @Html.TextAreaFor(x=>x.JavaScript,new {@class="JavaScript"})
        @Html.ValidationMessageFor(model => model.JavaScript, "", new { @class = "text-danger" })
    </div>
</div>

这是我的JS代码: -

<script>
    var editor = ace.edit("JavaScript");
    editor.setTheme("ace/theme/terminal");
    editor.getSession().setMode("ace/mode/javascript");
    window.onload = function () {
        $("form").submit(function () {
            $(".JavaScript").val().editor.getSession().getValue();
        })
    };
</script>

这是我的控制器代码: -

[HttpPost]
[ValidateInput(false)]
public ActionResult AddEdit(Article article, FormCollection formCollection)
{
    article.CompanyId = OperatingUser.CompanyId;

    if(string.IsNullOrWhiteSpace(article.Slug))
        article.Slug = article.Name.GenerateSlug();
    if (string.IsNullOrWhiteSpace(article.SlugKey))
        article.SlugKey = SlugKey();
    //bool isUnique = _articleService.IsSlugUnique(slug: article.Slug, articleId: article.Id);
    //if (!isUnique)
    //    article.Slug = $"{article.Slug}-1";
    article.CreatedById = OperatingUser.Id;
    article.ModifiedById = OperatingUser.Id;
    if (article.Tags != null && article.Tags.Any())
        article.Tag = string.Join(",", article.Tags);
    if (formCollection.GetValue("SubmitButton").AttemptedValue
        .Equals("Save and Publish", StringComparison.OrdinalIgnoreCase))
        article.IsPublished = true;
    article.RoleIds = formCollection.GetValue("selectedRoles").AttemptedValue;

    if (article.Id > 0)
    {
        article.ModifiedById = OperatingUser.Id;
        _articleService.Update(article);
    }
    else
    {
        article = _articleService.Add(article);
    }
    return Json(new { RedirectUrl = Url.Action("Edit", "Content", new { area="cms", id = article.Id }) });
}

我想在Db中保存此属性数据,但我无法保存此请帮帮我。

0 个答案:

没有答案