Post CKEDITOR 在 Asp.net 核心中的行动价值
Post CKEDITOR value to action in Asp.net Core
我正在使用 CKEditor 4,我将 post ckeditor html 值用于操作。但是当我点击提交按钮和模型 post 来操作 ckeditor 值 posted 空值时。
查看:
<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; }
}
控制器:
[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");
}
}
我如何 post ckeditor html 值来保存或编辑操作?
Forms post 返回 name/value 对成功的表单控件,ModelBinder 根据这些值绑定您的模型。您的模型包含一个名为 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');
我正在使用 CKEditor 4,我将 post ckeditor html 值用于操作。但是当我点击提交按钮和模型 post 来操作 ckeditor 值 posted 空值时。
查看:
<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; }
}
控制器:
[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");
}
}
我如何 post ckeditor html 值来保存或编辑操作?
Forms post 返回 name/value 对成功的表单控件,ModelBinder 根据这些值绑定您的模型。您的模型包含一个名为 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');