Jquery Ajax中的数据对象
我在函数中有以下代码:Jquery Ajax中的数据对象,jquery,ajax,Jquery,Ajax,我在函数中有以下代码: var setTime = selected[0]; var selectedTime = { ProfessionalUserId: $("#SelectProId").text() , Date: selectedDate , SetTime: setTime , Time: null }; $.ajax({ type: 'POST', data: selectedTime, url: '@Url
var setTime = selected[0];
var selectedTime = {
ProfessionalUserId: $("#SelectProId").text()
, Date: selectedDate
, SetTime: setTime
, Time: null
};
$.ajax({
type: 'POST',
data: selectedTime,
url: '@Url.Action("SetAvailableAppointments", "ScheduleView")',
dataType: "json",
//contentType: 'application/json',
success: function (result) {
if (data === true) {
$("#successfulAppt").show();
}
},
error: function (err) {
}
})
选择的[0]设置一个表示时间的字符串值,即“11:00:00”或“10:15:00,等等…”
selectedTime对象与接收方法签名中的服务器端POCO对象匹配
问题是,如果我使用SetTime属性创建像这样的selectedTime对象:
var setTime = selected[0];
var selectedTime = {
ProfessionalUserId: $("#SelectProId").text()
, Date: selectedDate
, SetTime: setTime
, Time: null
};
接收方法接收空对象
如果我以这种方式创建相同的对象selectedTime:
var setTime = selected[0];
var selectedTime = {
ProfessionalUserId: $("#SelectProId").text()
, Date: selectedDate
//, SetTime: setTime
, Time: null
};
data: { setTime: selectedTime },
如果没有设置时间属性,接收方法将接受对象
SetTime被设置为字符串值。我已经用chrome开发工具通过代码证明了这一步
这是服务器端对象
public class AvailableTime
{
public DateTime Date
{
get;
set;
}
public TimeSpan Time { get; set; }
public string TimeLiteral
{
get
{
return Time.ToString();
}
}
public string SetTime { get; set; }
public int ProfessionalUserId { get; set; }
}
以下是接收方法:
public ActionResult SetAvailableAppointments(AvailableTime setTime)
{
if (setTime == null)
return View();
....
}
看起来您需要更改ajax调用以按以下方式设置参数:
var setTime = selected[0];
var selectedTime = {
ProfessionalUserId: $("#SelectProId").text()
, Date: selectedDate
//, SetTime: setTime
, Time: null
};
data: { setTime: selectedTime },
这是因为函数参数名为setTime
,并且您创建了一个名为selectedTime
的对象,如下所示:
var selectedTime = {
ProfessionalUserId: $("#SelectProId").text()
, Date: selectedDate
, SetTime: setTime
, Time: null
};
selectedDate在哪里初始化?在代码中进一步。我正在从控件中的另一个值设置它,它工作正常。可能不相关,但在您的
success
函数中,您将输入参数命名为result
,然后将其称为data
。检查标题您的开发工具-它们都通过了吗正确连接到您的服务器吗?谢谢是的,我从其他代码复制了if语句,没有更改它,谢谢捕获。我需要将对象上的所有属性传递回我。是否selectedTime
包含所有属性的对象?实际上-如果您正在将其转换为对象,您可能已更正谢谢!!!!我在接收方法签名中将setTime重命名为newAppt,它工作得很好。我甚至不认为这些名称会引起问题。