gpt4 book ai didi

c# - 如何使用 ajax 调用将 formcollection 传递给一个 Action ?

转载 作者:可可西里 更新时间:2023-11-01 07:49:49 24 4
gpt4 key购买 nike

我正在尝试用 ajax 调用替换表单提交。该操作需要 formcollection,我不想创建新模型。所以我需要通过 ajax 调用传递整个表单(就像表单提交一样)。我尝试序列化并使用 Json,但 formcollection 为空。这是我的 Action 签名:

public ActionResult CompleteRegisteration(FormCollection formCollection)

这是我的提交按钮点击:

var form = $("#onlineform").serialize();              
$.ajax({
url: "/Register/CompleteRegisteration",
datatype: 'json',
data: JSON.stringify(form),
contentType: "application/json; charset=utf-8",
success: function (data) {
if (data.result == "Error") {
alert(data.message);
}
}
});

现在如何将数据传递到 formcollection 中?

最佳答案

由于 FormCollection 是一些键值对,因此 JSON 不适合用于表示它的数据格式。您应该只使用序列化的表单字符串:

var form = $("#onlineform").serialize();
$.ajax({
type: 'POST',
url: "/Register/CompleteRegisteration",
data: form,
dataType: 'json',
success: function (data) {
if (data.result == "Error") {
alert(data.message);
}
}
});

主要变化:

  1. type 请求设置为 POST(这里不需要,但看起来更自然)
  2. 序列化形式而不是 JSON 字符串作为请求数据
  3. contentType 已删除 - 我们不再发送 JSON

关于c# - 如何使用 ajax 调用将 formcollection 传递给一个 Action ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17797053/

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