Razor 在ajax Post请求MVC中未序列化部分视图

Razor 在ajax Post请求MVC中未序列化部分视图,razor,serialization,asp.net-mvc-5,partial-views,Razor,Serialization,Asp.net Mvc 5,Partial Views,为我的页面实现自动保存功能。因此,在特定的时间间隔后,调用actionAutosave()。但我的页面已经开始形成包括部分视图。间隔后调用的代码工作正常 <script type="text/javascript"> window.setInterval(function () { var form = $("#addpost"); $.ajax({ url: '@Url.Action("AutoSaveP

为我的页面实现自动保存功能。因此,在特定的时间间隔后,调用action
Autosave()
。但我的页面已经开始形成包括部分视图。间隔后调用的代码工作正常

<script type="text/javascript">
    window.setInterval(function () {       
        var form = $("#addpost");
        $.ajax({
            url: '@Url.Action("AutoSavePostAction", "MyControllerName")',
            data: form.serialize(),
            type: 'POST',
            success: function (data) {
                $("#Id").val(data);
            }
        });
    }, 30000); 
SavePostAction
在调用submit之后。在这次提交中,从局部视图获取值不是问题。 但在ajax调用中,部分视图并没有包含在序列化中。 此处
\u textppostpartial
具有与模型紧密绑定的CKEditor。 类似于局部视图,具有:

<textarea id="Description" name="Description">@Html.Raw(Model.Description)</textarea>

在序列化表单数据之前,需要将CKEditor的值分配给输入

 window.setInterval(function () {     
    $("#Description").val(CKEDITOR.instances['Description'].getData()); // add this
    var form = $("#addpost");
    $.ajax({
        url: '@Url.Action("AutoSavePostAction", "MyControllerName")',
        data: form.serialize(),
        type: 'POST',
        success: function (data) {
            $("#Id").val(data);
        }
    });
}, 30000); 

是否只有
Model.Description
AutoSavePostAction()
方法中没有绑定?酒店是否用
[allowtml]
装饰?您还应该显示这两个控制器方法的签名。哦..忘记添加了。请复习这个问题。是的,仅适用于模型。说明没有显示值为什么您有
FormCollection
的参数?这两种方法之间的区别在于,working具有
[MemberFunction]
过滤器属性。它是做什么的?是的,是有目的的,[MemberFunction]它的会员资格。FormCollection用于一些单选按钮逻辑。我认为这与实际问题无关。
[MemberFunction]
是表明这可能是个问题的签名的唯一区别。除非您的视图设计糟糕,否则不应要求使用
FormCollection
。您应该调试脚本-什么是
var data=form.serialize()返回-它是否包含
说明
的名称/值对?请参阅不要浪费时间。。。有价值的;)
[HttpPost]
public ActionResult AutoSavePostAction(PostDTO postDTO, FormCollection postFormCollection)
{
}

[HttpPost]
[MemberFunction]
public ActionResult SavePostAction(PostDTO postDTO, FormCollection postFormCollection)
 {
 }
 window.setInterval(function () {     
    $("#Description").val(CKEDITOR.instances['Description'].getData()); // add this
    var form = $("#addpost");
    $.ajax({
        url: '@Url.Action("AutoSavePostAction", "MyControllerName")',
        data: form.serialize(),
        type: 'POST',
        success: function (data) {
            $("#Id").val(data);
        }
    });
}, 30000);