我已经创建了一个EditController,用于在asp.net核心项目中获取和编辑我的数据库内容。控制器如下:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Edit(MyObject model)
{
if (ModelState.IsValid)
{
await _myObjectRepository.UpdateMsg(model);
return RedirectToAction("Index");
}
return View();
}
我使用以下脚本标记来引用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>
我从数据库向编辑器显示数据没问题。但是当我尝试更改编辑器中的文本时,数据库中不会出现任何文本。
所以在不使用编辑器的情况下测试了代码,即我只使用标签而不是CKEditor,使用通常的剃刀属性并且工作正常。我该如何解决这个问题?
答案 0 :(得分:6)
我相信你在MyObject类中有一个属性来存储CKEditor的内容。让我们假设&#34; ckEditorVar&#34;是存储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();
}