gpt4 book ai didi

json - 如何将表单作为 View 模型对象以及其他参数发布到 MVC 中的 Controller ?

转载 作者:行者123 更新时间:2023-12-05 07:46:36 24 4
gpt4 key购买 nike

<分区>

我在 Controller 中有一个 Action :

public int Edit(MyViewModel viewModel)
{
// code to edit
}

我正在发布一个表单:

$.post("/MyController/Edit", $("#form").serialize()).then(
function () {
$("#dialog1").dialog("close");
$("#list-grid").trigger('reloadGrid');
});

这很好用。我得到的参数格式与 MyViewModel 相同。

但是,我需要再向操作传递一个参数。所以我将 Controller 更改为:

public int Edit(MyViewModel viewModel, string oldValue)
{
// code to edit
}

现在,我尝试通过以下方式将 viewModeloldValue 一起传递给使用 ajax 调用的操作:

var object = $("#form").serialize();
$.ajax({
url: '@Url.Action("Edit", "MyController")',
type: "POST",
contentType: // please see below
data: { viewModel: object, oldValue: oldVal},
dataType: // please see below
contentType: 'application/json',
success: function (response) {
alert("Successfully updated!");
}
});

虽然我能够得到 oldValue 的值,但是 viewModelnull,尽管它与发送的值完全相同在 $.post(...) 中,在控制台中检查时。

如果我将 contentType 指定为以下任何一种:

application/x-www-form-urlencoded; charset=UTF-8 或者,

应用程序/json; charset=utf-8 或者,

应用程序/json

调用失败。

我尝试过不指定 dataType,也尝试将其指定为 json,但没有成功。

创建自定义类来反序列化发送的 json 是不可行的。

我该如何解决这个问题?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com