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



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

网页部分

        <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 部分之前的控制器之前,我使用了encodeURIComponent函数。

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

(参考资料(

最新更新