gpt4 book ai didi

JQuery 将数据发送到 MVC 操作方法?

转载 作者:行者123 更新时间:2023-12-01 03:44:00 26 4
gpt4 key购买 nike

我想做的就是将字符串/整数数组传递给 mvc 操作方法。但数据总是返回为空,我做错了什么?

MVC Controller

[HttpPost]
public ActionResult MyAction(List<string> ids)
{
// do something with array
// But it's null
return View();
}

JQuery

$.post("/MyController/MyAction", JSON.stringify(ids), function () { alert("woohoo"); }, "application/json");

数据被发布到操作结果

["156"]

最佳答案

尝试:

... JSON.stringify({ ids : ids }), ...

我很确定模型绑定(bind)器也不确定列表/数组应该绑定(bind)什么。

考虑:

[HttpPost]
public ActionResult MyAction(List<string> ids, List<string> blah)
{
}

如果 JSON 仅作为值数组传递,则还要绑定(bind)哪个参数? JSON 可能比 FORMS 提交复杂得多,因此它还需要更多的定义。

例如,以下内容适用于前面的考虑。

{
ids : ["asdf","asdf"],
blah : ["qwer", "qwer"]
}

更新

为了正确发送 json,需要进行以下 ajax 调用:

$.ajax({
type: "POST",
url: "/Home/Index",
data: JSON.stringify( ids ),
contentType: "application/json; charset=utf-8"
});

Post 中的最后一个参数(您指定的 application/json)是期望从服务器返回的内容。默认情况下,$.Post 将执行表单编码 (application/x-www-form-urlencoded) contentType,它似乎被硬编码到快捷方式方法中。要设置 contentType,您必须使用冗长的版本 $.ajax。

关于JQuery 将数据发送到 MVC 操作方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15647321/

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