【发布时间】:2013-12-28 12:29:13
【问题描述】:
我遇到了最奇怪的情况。我有两个 ajax POST。首先,我在将参数传递给控制器时遇到了问题,但在某些时候我让它们通过了一些调试,我发现如果我的 ajax 定义后跟警报,我只会将所有值传递给控制器。
其中一个:
$.ajax({
type: 'POST',
url: '/Contact/IntresseAnmälan/',
dataType: 'json',
data: {
Namn: $('#namn').val(),
Mail: $('#mail').val(),
Info: $('#meddelande').val(),
Telefon: $('#nr').val(),
IsEnkel: false,
PassId: function () {
var url = window.location.pathname;
var id = url.substring(url.lastIndexOf('/') + 1);
return id;
},
Participanter: getParticipant(),
ParticipantMail: getParticipantMail()
},
traditional: true,
success: function (result) {
// window.location.href = '@Url.Action("IntresseAnmälan", "Contact")';
}
});
alert("Hur sparas dina uppgifter?");
这是我的姓名和邮件获取器。如果用户想要单击一个按钮,则会将表单元素(输入类型邮件和文本)动态添加到表单中,并添加两个输入。然后这些函数返回一个包含表单输入值的数组。
function getParticipant() {
var p = [];
for (var i = 1; i <= participantCount; i++) {
var name = '#anNamn' + i;
p[i -1] = $(name).val()
}
return p;
}
function getParticipantMail() {
var p = [];
for (var i = 1; i <= participantCount; i++) {
p[i -1] = $('#anMail' + i).val();
}
return p;
}
这是我的控制器。我已经移除了控制器中的主体。它保存到数据库并向管理员发送验证邮件。
[HttpPost]
public ActionResult IntresseAnmälan(BokningContainer bokning)
{
//Saves to Db and Send a verification mail to admin
}
如果我在ajax某些参数传递后排除alert,我认为是Namn和Mail,但大部分没有传递。我很困惑。
另外,ajax 是从 jQuery 将对象传递给控制器的唯一方法吗?
【问题讨论】:
-
getParticipant和getParticipantMail是什么异步函数 -
您能提供您的控制器操作代码吗?
-
我认为您陷入了非阻塞问题。让我们看看 getParticipant 和 getParticipantMail 的实现。
-
我已经添加了邮件和姓名获取者的定义。
-
在我的其他 ajax 定义中,我没有 get 函数,但我仍然有同样的情况。
标签: c# jquery ajax asp.net-mvc controller