0

ここで webapi に取り組んでいます。ajax 呼び出しの後に null データを取得しています。どうすればデータを取得できますか?

ここで私のajax呼び出し:

<script type="text/javascript">
$(document).ready(function () {
var editor = CKEDITOR.editor.replace('editor1');
$('#btndiv').mouseleave(function (event) {
    $('#btndiv1').hide("slow");
        alert(1);
        var data1 = editor.getData();
        $('#btndiv').append(data1);
    // send your ajax request with value

        var dataToPost = JSON.stringify(data1);
        alert('hi');
        alert(data1 + "got data");
        $.ajax({
            type: "Post",
            url: "/api/UpdateCkeditor",
            contentType: "application/json; charset=utf-8",
            data: dataToPost,
            dataType: "json",
            statusCode: {
                200: function (data1) {
                    alert("Updated successfully");
                }
            }
            //success: function (value) {
            //    // do what you want on success.
            //    alert("Updated successfully");

            //}
        });
    });
});

</script>

そしてここに私のコントローラー:

  public void create(ckeditormodels data1)
    {
        webapiEntities db = new webapiEntities();

        var empObj = db.ckeditorDatas.First(c => c.id == 1);
        empObj.value = data1.value;

        db.SaveChanges();

    }

ここに私のモデル:

    public class ckeditormodels
{
    public int id { get; set; }
    public string value { get; set; }
    public string dataToPost { get; set; }
    public string data1 { get; set; }
}

ここで、データを null にしています。コントローラーへの ajax 呼び出しからデータを取得するにはどうすればよいですか? 助けていただければ幸いです - ありがとう。

4

1 に答える 1

1

CKEditorのgetData()メソッドは、エディターから生データを返します(エディターが単独で投稿するのと同じです)。モデルに合うように、その文字列をラップする必要があります。

<script type="text/javascript">
    $(document).ready(function () {
    var editor = CKEDITOR.editor.replace('editor1');
    $('#btndiv').mouseleave(function (event) {
            ...
            var rawEditorValue = editor.getData();
            ...
            //If you want more properties here just extend this object
            var dataToPost = JSON.stringify({ value: rawEditorValue });
            ...
        });
    });
</script>

その結果、rawEditorValueエディターからのデータはvalueモデルのプロパティにバインドされます。また、ここではリクエストがあなたのアクションにヒットしていると仮定します(URLとメソッドは適合していないようですが、yoruはアクションがヒットし、データのみがnullであると言っているので、信頼しています)。

于 2012-10-30T11:45:30.497 に答える