我正在尝试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中保存此属性数据,但我无法保存此请帮帮我。