CKEditor数据绑定在asp.net核心mvc中

20B*_*0B2 4 ckeditor asp.net-core-mvc

我已经创建了一个EditController来获取和编辑asp.net核心项目中我的数据库的内容.财务主任如下:

[HttpPost]
    [ValidateAntiForgeryToken]
    public async Task<IActionResult> Edit(MyObject model)
    {
        if (ModelState.IsValid)
        {
            await  _myObjectRepository.UpdateMsg(model);

            return RedirectToAction("Index");
        }
        return View();
    }
Run Code Online (Sandbox Code Playgroud)

我使用以下脚本标记来引用ckeditor并将其保存在Edit.cshtml上.

在表单标记内部,我放置了以下代码行来显示编辑器并在编辑器中显示数据库中的数据.

<div class="form-group">
    <label asp-for="Body" class="col-sm-2 control-label"></label>
    <div class="col-sm-10">
       <textarea asp-for="Body"  id="editor1" name="editor1"></textarea>
    </div>
</div>

<script type="text/javascript">CKEDITOR.replace('Body');</script>
Run Code Online (Sandbox Code Playgroud)

我将数据从数据库显示到编辑器没有问题.但是当我尝试更改编辑器中的文本时,数据库中不会出现任何文本.

因此,在不使用编辑器的情况下测试代码,即我只使用标签而不是CKEditor,使用通常的剃刀属性,并且工作正常.我怎么解决这个问题?

Dav*_*wal 6

我相信你在MyObject类中有一个属性来存储CKEditor的内容.让我们假设"ckEditorVar"是存储ckeditor内容的属性.以下代码适合我.我希望它也适合你.

    [HttpPost]
    [ValidateAntiForgeryToken]
    public async Task<IActionResult> Edit(MyObject model)
    {

        if (ModelState.IsValid)
        {
             await _myObjectRepository.UpdateMsg(new MyObject 
            {
                ckeditorVar = Request.Form["editor1"].ToString(),

             });

            return RedirectToAction("Index");
        }
        return View();
    }
Run Code Online (Sandbox Code Playgroud)