Estoy usando el complemento ckeditor versión 4 ... Quiero enviar valores de ckeditot al controlador, ¡pero haga lo que haga envía un valor nulo! Busqué mucho, probé todos los métodos en el sitio, pero no funcionó :( ¿Descargué el complemento nuevamente del sitio pero aún falló?
Aviso: cuando uso "Id" en lugar de "asp-for", se envía el valor, pero necesito asp-for...
Formulario html:
@model Baya.Core.ViewModels.AddProductViewModel <form id="ProductForm" method="post" enctype="multipart/form-data"> <div class="form-group"> <label class="control-label">desc</label> <textarea asp-for="Description" class="form-control"></textarea> </div> <div class="modal-footer"> <button type="button" onclick="return ValidateForm()" class="btn btn-info waves-effect">save</button> <button type="button" class="btn btn-danger waves-effect" data-dismiss="modal"> cancel </button> </div>Código JavaScript:
$(function () { /* $('#Description').ckeditor();*/ CKEDITOR.replace('Description'); }); function ValidateForm() { let Form = $("#ProductForm")[0]; let Form_Data = new FormData(Form); var descProduct = CKEDITOR.instances.Description.getData(); Form_Data.append("Description", descProduct); $.ajax({ url: '/AdminPanel/Product/AddAndUpdateProduct', data: Form_Data, contentType: false, processData: false, type: 'POST', success: function (data) { //code } }); }Controlador :
[HttpPost] [ValidateAntiForgeryToken] public IActionResult AddAndUpdateProduct(AddProductViewModel model) { //some code }Usé este código:
CKEDITOR.instances.Description.updateElement(); var descProduct = document.getElementById('Description').value;En lugar de este código:
var descProduct = CKEDITOR.instances.Description.getData();ha funcionado