gpt4 book ai didi

c# - jQuery Ajax 发布不传递参数

转载 作者:太空狗 更新时间:2023-10-29 22:05:53 25 4
gpt4 key购买 nike

我正在尝试使用 jQuery 的 $.ajax() 函数将表单变量发布到 MVC 路由。问题是,当代码命中我的 MVC 操作时,所有参数都为空,即使正在向它们传递数据也是如此:

jQuery:

$(function () {
$('#signupform').submit(function (e) {
e.preventDefault();

if ($(this).valid()) {
var postData = '{name : "' + $("#Name").val() + '", email : "' + $("#Email").val() + '", message : "' + $("#Message").val() + '" }';

$.ajax({
url: "/api/contact-form-post",
data: postData,
type: "get"
})
.complete(function (data) {
$("#formContainer").html($("#formThankYou").html());
});
}
});
});

调用 alert(postData) 输出如下:

{name : "Scott Smith", email : "scott@smith.com", message : "test message" }

MVC 操作:

public JsonResult ContactFormPost(string email, string name = "" , string message = "")
{
AddEmailToMailingList(email);

if (!String.IsNullOrEmpty(name) && !String.IsNullOrEmpty(message))
{
InsertContactMessage(email, name, message);
}

return Json(true);
}

使用 FireBug 检查请求表明这是被调用的 URL。显然 url 参数的格式不正确,但我不明白为什么。

http://localhost:10637/api/contact-form-post ?{name%20:%20%22Scott%20Smith%22,%20email%20:%20%22scott@smith.com%22,%20message%20:%20%22Test%20message%22%20}

我是否在这里犯了任何明显的错误,导致我的 ContactFormPost 方法的参数始终为空?

最佳答案

取消引用 postData,传递 $.ajax 一个真正的 JS 对象。

var postData = {
name: $("#Name").val(),
email: $("#Email").val(),
message: $("#Message").val()
};

关于c# - jQuery Ajax 发布不传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5055284/

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