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

时间:2017-05-19 17:36:10

标签: javascript jquery ajax asp.net-mvc summernote

我是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 个答案:

答案 0 :(得分:0)

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

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

Reference