我一直试图发布两个参数... 这是ajax代码
function Kaydet() {
var params = {};
var Kiralayan = $("#RentForm").serialize();
params.kisi = Kiralayan ;
params.aracid = P.AracID;
console.log(params);
$.ajax({
type: "POST",
url: '@Url.Action("Save","AracKirala")',
data: params,
dataType: "text",
success: function (response) {
if (response != "OK") {
alert("Kayıt yapılamadı.");
}
else {
document.getElementById("RentForm").reset();
alert("Kayıt başarıyla gerçekleştirildi.");
$("#myModal").modal('hide');
Ara();
}
}
});
方法
public ActionResult Save(Kiralayan kisi = null, int aracid = 0)
{
问题是ajax帖子“aracid”正确但当“方法被触发时”kisi“变为空... 我试着不用“kisi”发布“aracid”所以ajax很好地发布了一个参数“kisi”,但是没有合作......
答案 0 :(得分:4)
如果序列化表单,则可以使用.param()
函数为其添加其他值
var data = $("#RentForm").serialize() + '&' + $.param({ 'aracid': AracID }, true);
$.ajax({
type: "POST",
url: '@Url.Action("Save","AracKirala")',
data: data,
....
答案 1 :(得分:1)
MVC将为您映射对象,因此您也可以跳过对象中表单的提取嵌套。
aracid
也是模型中的属性,它将映射到 属性和额外参数。serialise()
集合上的推送比serialize()
调用之前串联字符串的替代方法更易于维护。<强> e.g。强>
var Kiralayan = $("#RentForm").serialize();
// Add the extra non-form parameter
Kiralayan.push({name: 'aracid', value: P.AracID});
完整示例:
function Kaydet() {
var Kiralayan = $("#RentForm").serialize();
// Add the extra non-form parameter
Kiralayan.push({name: 'aracid', value: P.AracID});
console.log(params);
$.ajax({
type: "POST",
url: '@Url.Action("Save","AracKirala")',
data: Kiralayan,
dataType: "text",
success: function (response) {
if (response != "OK") {
alert("Kayıt yapılamadı.");
}
else {
document.getElementById("RentForm").reset();
alert("Kayıt başarıyla gerçekleştirildi.");
$("#myModal").modal('hide');
Ara();
}
}
});