【发布时间】:2015-12-20 07:05:39
【问题描述】:
为我的页面实现自动保存功能。所以在一定的时间间隔后调用动作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);
视图是:
@using (Html.BeginForm("SavePostAction", "MyControllerName", FormMethod.Post, new { enctype = "multipart/form-data", id="addpost" }))
{
.................
@Html.Partial("_TextPostPartial", Model);
.................
}
SavePostAction 在调用提交之后。在此提交中,从 Partial 视图中获取值,这不是问题。
但是在ajax调用中,部分视图不包括在序列化中。
这里_TextPostPartial 拥有与模型强绑定的CKEditor。
像部分视图一样:
<textarea id="Description" name="Description">@Html.Raw(Model.Description)</textarea>
已编辑:
[HttpPost]
public ActionResult AutoSavePostAction(PostDTO postDTO, FormCollection postFormCollection)
{
}
[HttpPost]
[MemberFunction]
public ActionResult SavePostAction(PostDTO postDTO, FormCollection postFormCollection)
{
}
【问题讨论】:
-
只有
Model.Description在AutoSavePostAction()方法中没有绑定吗?物业是用[AllowHtml]装饰的吗?您还应该显示两个控制器方法的签名。 -
哦..忘了添加。请检查问题。是的,只有 Model.Description 没有显示价值
-
为什么你有
FormCollection的参数?这两种方法之间的区别在于工作具有[MemberFunction]过滤器属性。它有什么作用? -
是故意的,[MemberFunction] 是为了会员资格。 FormCollection 用于一些单选按钮逻辑。我认为这与实际问题无关。
-
好吧,
[MemberFunction]是签名中唯一的区别,表明它可能是一个问题。除非您的视图设计不当,否则不应要求FormCollection。您应该调试您的脚本 -var data = form.serialize();返回什么 - 它是否包含Description的名称/值对?
标签: razor serialization asp.net-mvc-5 partial-views