2017-11-12 1 views
1

내 asp.net 핵심 프로젝트에서 부분보기가 있는데 AJAX가있는 컨트롤러에 inputselecteditor 값을 모두 게시하려고합니다. 컨트롤러에 모두 inputselect 태그를 게시 할 수 있지만 CkEditor 값을 게시 할 수 없습니다.AJAX를 통해 다른 입력과 함께 CKEDITOR 값을 게시하는 방법

물론 jQuery에서 CkEditor 값을 얻을 수 있지만 선택할 수는 없습니다.

부분보기 :

@model LibraryProject.Models.ViewModels.AddEditBookViewModel 

<form method="post" enctype="multipart/form-data"> 
    <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" /> 
       </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="BookDescription" name="BookDescription" asp-for="BookDescription" class="form-control"></textarea> 
       </div> 

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

      </div> 


      <div class="form-group"> 
       <label asp-for="BookGroupID" class="col-lg-2 col-sm-2 control-label"></label> 
       <div class="col-lg-6"> 
        <select asp-for="BookGroupID" asp-items="@Model.BookGroups" class="form-control"></select> 
       </div> 
      </div> 


      <div class="form-group"> 
       <label asp-for="AuthorID" class="col-lg-2 col-sm-2 control-label"></label> 
       <div class="col-lg-6"> 
        <select asp-for="AuthorID" asp-items="@Model.Authors" class="form-control"></select> 
       </div> 
      </div> 

      <div class="form-group"> 
       <label asp-for="BookPageCount" class="col-lg-2 col-sm-2 control-label"></label> 
       <div class="col-lg-6"> 
        <input asp-for="BookPageCount" class="form-control" /> 
       </div> 
      </div> 

      <input type="file" id="files" name="files" multiple /> 

     </div> 
    </div> 
    <div class="modal-footer"> 
     <input type="button" id="submitinfo" class="btn btn-success" value="Add Book" /> 
    </div> 
</form> 

그리고 내 jQuery 코드 : 지금은 jQuery를 3 점으로 표시되는 경우 내가 다른과 함께 편집기 값을 게시 할 수있는 방법을

<script> 
    $(document).on('click', '#submitinfo', function (evt) { 
     evt.preventDefault(); 
     var fileupload = $("#files").get(0); 
     var files = fileupload.files; 
     var data = new FormData(); 
     for (var i = 0; i < files.length; i++) { 
      data.append('files', files[i]); 
     } 

//In this line I can get editor value 
     var editorval = CKEDITOR.instances['BookDescription'].getData(); 

//***here i can post all input and select tag value but can`t post editor value along with other 
     $('input,select').each(function (x, y) { 
      data.append($(y).attr("name"), $(y).val()); 
     }); 


     $.ajax({ 
      type: "post", 
      url: '@Url.Action("AddBook", "Book")', 
      contentType: false, 
      processData: false, 
      data: data 
     }).done(function (res) { 
      if (res.status === "success") { 
       alert(res.message); 
      } else { 
       $.each(res.errors, function (a, b) { 
        alert(b); 
       }); 
      } 
     }).fail(function (xhr, b, error) { 
      alert(error); 
     }); 
    }); 
</script> 

암호?

답변

1

CKEditor에서 값을 읽어서 양식 데이터에 추가 할 수 있습니다.

$('input,select').each(function (x, y) { 
    data.append($(y).attr("name"), $(y).val()); 
}); 
var editorval = CKEDITOR.instances['BookDescription'].getData(); 
data.append('BookDescription',editorval); 
관련 문제