在mvc中,使用summernote编辑器,我想将内容字符串和html的数据发送到控制器

Posted

技术标签:

【中文标题】在mvc中,使用summernote编辑器,我想将内容字符串和html的数据发送到控制器【英文标题】:in mvc, using summernote editor, i wanna send data which contents string and html to controller 【发布时间】:2017-10-19 22:21:27 【问题描述】:

我是 MVC 的初学者,所以有些地方我做不到。 Summernote Editor 用于写博客,Ajax 用于发帖。在此编辑器中写入一些字符后,smmernote 编辑器中的此 html 数据和其他字符串数据必须使用 ajax 发布,但我无法将数据发送到控制器。

HTML 部分

        <div class="panel-body">
            <form class="form-horizontal" role="form" id="frmCreateBlogEntry">
                <div class="form-group">
                    <label for="txtTitle" class="col-sm-2 control-label">Title</label>
                    <div class="col-sm-10">
                        <input type="text" class="form-control" id="txtTitle" placeholder="Enter Title" maxlength="250" required>
                    </div>
                </div>
                <div class="form-group">
                    <label for="txtSubtitle" class="col-sm-2 control-label">subtitle</label>
                    <div class="col-sm-10">
                        <textarea class="form-control" name="txtSubtitle" id="txtSubtitle" placeholder="enter subtitle" maxlength="250" required></textarea>
                    </div>
                </div>
                <div class="form-group">
                    <label for="smrntContent" class="col-sm-2 control-label">Blog Entry</label>
                    <div  class="col-sm-10">
                        <div id="smrntContent" class="form-control summernote" name="smrntContent"></div>
                    </div>
                </div>                    
                <div class="btn-toolbar">
                    <button id="btnPreview" type="button" class="btn btn-yellow pull-right">preview</button>
                    <button id="btnSave" type="button" class="btn btn-primary pull-right">save</button>
                </div>
            </form>
        </div>

脚本部分

$(document).ready(function ()           
        $("#smrntContent").summernote(
                "height": 200
        );
        $("#btnSave").click(function () 
            var markupStr = $("#smrntContent").summernote('code');
            var createBlogEntry =
                    
                        Title: $("#txtTitle").val(),
                        Subtitle: $("#txtTitle").val(),
                        Content: markupStr
                    ;
            $.ajax(
                url: "/Yayin/CreateNewBlogEntry",
                type: "post",
                datatype: "json",
                data: createBlogEntry,
                success: function (response) 
                    //Başarılı bir şekilde kaydedildi ise
                    if (response.Success) 
                                           
                    else                             
                    
                ,                    
                error: function (xhr, status)                         
                
            );
        );
    );

控制器部分

        public JsonResult CreateNewBlogEntry(BlogEntry createBlogEntry)
    
        try
                       
            createBlogEntry.CreatedBy = (SessionManager.ActiveAdmin != null) ? SessionManager.ActiveAdmin.DisplayName : SessionManager.ActiveUser.DisplayName;
            createBlogEntry.IsActive = false; 

            _blogEntryRepo.Insert(createBlogEntry);

            _uow.Save();

            return Json(new  Success = true, Message = ".." );
        
        catch (Exception ex)
        
            return Json(new  Success = false, Message = ".." + ex.Message );
        
    

我想知道我是否可以在 ajax 部分为 (datatype:) 写一些东西

【问题讨论】:

【参考方案1】:

我自己终于解决了这个问题。在将数据发送到 ajax 部分之前的控制器之前,我使用了encodeURIComponent 函数。

var markupStr = encodeURIComponent($("#smrntContent").summernote('code'));

(Reference)

【讨论】:

那你怎么解码呢?在这种情况下,拥有summernote是没有用的。

以上是关于在mvc中,使用summernote编辑器,我想将内容字符串和html的数据发送到控制器的主要内容,如果未能解决你的问题,请参考以下文章

图片上传到 Summernote 编辑器中的文件夹

如何在 Summernotes 中禁用编辑?

使用自定义样式将外部元素拖放到summernote编辑器

使用 Summernote 在 Laravel 中动态内联附件

如何从summernote文本编辑器导出纯文本

Angularjs Summernote:$scope.editor.insertImage 不是函数