gpt4 book ai didi

javascript - 将 CKEDITOR 值发布到 Asp.net Core 中的操作

转载 作者:行者123 更新时间:2023-11-30 11:28:21 24 4
gpt4 key购买 nike

我正在使用 CKEditor 4 并且我打算将 ckeditor html 值发布到 Action。但是当我单击提交按钮和模型发布以执行操作时,ckeditor 值发布了空值。

View :

<form asp-controller="Book" asp-action="AddEditBook" id="addeditbook" data-ajax="true" 
data-ajax-method="POST" data-ajax-update="#addeditbook" data-ajax-mode="replace">


<div class="modal-body form-horizontal">
<div class="row">

<div class="form-group">
<label asp-for="BookName" class="col-lg-2 col-sm-2 control-label"></label>
<div class="col-lg-6">
<input asp-for="BookName" class="form-control" />
<span asp-validation-for="BookName" class="text-danger"></span>
</div>
</div>

<div class="form-group">
<label asp-for="BookDescription" class="col-lg-2 col-sm-2 control-label"></label>
<div class="col-lg-9">
<textarea id="editor1" name="editor1" asp-for="BookDescription" class="form-control"></textarea>
<span asp-validation-for="BookDescription" class="text-danger"></span>
</div>

<script type="text/javascript">
CKEDITOR.replace('editor1');
</script>
</div>
</div>
</div>


<input type="submit" value="submit"/>

}

型号:

 public class AddEditBookViewModel
{
[Key]
public int BookId { get; set; }

[Display(Name = "Book Name:")]
[Required(ErrorMessage = "Enter Book Name")]
public string BookName { get; set; }

[Display(Name = "Book Description:")]
[Required(ErrorMessage = "Enter Book Description")]
public string BookDescription { get; set; }
}

Controller :

   [HttpPost]
public IActionResult AddEditBook(AddEditBookViewModel model)
{
if (ModelState.IsValid)
{
using (var db = _iServiceProvider.GetRequiredService<ApplicationDbContext>())
{
Book bookModel = Mapper.Map<AddEditBookViewModel, Book>(model);
db.books.Add(bookModel);
db.SaveChanges();
}
return view("index");
}
}

我如何将 ckeditor html 值发布到操作以进行保存或编辑?

最佳答案

Forms 返回其成功的表单控件的名称/值对,ModelBinder 根据这些值绑定(bind)您的模型。您的模型包含一个名为 BookDescription 的属性,但您已经覆盖了 TagHelper 生成的 name 属性(即 name="BookDescription")并给定它 name="editor1" 不是模型中属性的名称。

删除 name="editor1" 属性,这样你输入的就是

<textarea id="editor1" asp-for="BookDescription" class="form-control"></textarea>

作为旁注,TagHelper 还默认生成 id="BookDescription",并且也不需要覆盖该属性。您还可以删除 id="editor1" 属性,然后脚本将是

CKEDITOR.replace('BookDescription');

关于javascript - 将 CKEDITOR 值发布到 Asp.net Core 中的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47147511/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com