我想发布一个JSON对象(JSON-指明分数淘汰赛模式,如果这是任何关联的)到我的MVC控制器,并有控制器返回一个新的视角。 要做到这一点,我有一个表单发送数据。 的问题是,我想有当所述控制器接收它JSON自动转换为模型。
如果我是用AJAX调用此,
var actionModel = new Object();
actionModel.Controls = ko.toJS(self.controls());
var json = JSON.stringify(actionModel);
$.ajax({
url: "MyController/Preview",
type: "POST",
contentType: 'application/json; charset=utf-8',
cache: false,
data: json,
success: function (data) {
}
});
... JSON对象会成功反序列化,并转化为我的模型类的一个实例。
public ActionResult Preview(ActionModel actionModel) { ... }
public class ActionModel
{
public List<ControlModel> Controls { get; set; }
}
如果我想用一个形式,要做到这一点,我明白,我需要的JSON插入一个隐藏的输入字段,但最好这样做是为了接收数据的序列化的字符串时,我可以管理:
@using (Html.BeginForm("Preview", "MyController", FormMethod.Post, new { id = "previewForm" }))
{
<input type="hidden" id="hiddenFieldName" />
}
public ActionResult Preview(string hiddenFieldName) { ... }
我可以反序列化之后,但我真的希望,如果MVC可以转换对我来说,因为它会与AJAX调用。 这可能吗?
谢谢。