【发布时间】:2018-06-04 12:02:58
【问题描述】:
我在通过 Ajax 发布请求传递模型时遇到问题。
值被传递到下面的Javascript函数中,变量被转换成JSON字符串并发送到控制器方法。
在 Chrome 中使用开发工具时,我可以看到数据正在按预期发送。
问题是控制器中object参数的属性都是0,为什么会出现这种情况,如何解决?
示例数据
事件 ID = 419656
EventStart = 2017 年 12 月 5 日星期二 10:00:00 GMT+0000
EventEnd = 2017 年 12 月 5 日星期二 11:00:00 GMT+0000
JavaScript:
function UpdateEvent(EventID, EventStart, EventEnd) {
alert(EventID);
$.ajax({
type: 'POST',
url: "/Calendar/UpdateEvent",
contentType: "application/json",
data: JSON.stringify({
Id: EventID,
NewEventStart: EventStart,
NewEventEnd: EventEnd
})
});
}
型号:
public class UpdateAppt
{
public int Id { get; set; }
public DateTime NewEventStart { get; set; }
public DateTime NewEventEnd { get; set; }
}
控制器:
[RoutePrefix("Calendar"), Route("{action=index}")]
public class CalendarController : Controller
{
public void UpdateEvent(UpdateAppt updateModel )
{
}
}
【问题讨论】:
-
如果您正在设置
contentType: "application/json",您是否需要.stringifydata? -
给出发送数据的例子。目前状态下的问题尚不清楚,因为它不完整,需要太多问题才能澄清所问的问题。阅读How to Ask,然后提供minimal reproducible example,可用于重现您的问题,让我们更好地了解所询问的内容。
-
@Forty3 如果不使用
.stringify,控制器方法甚至不会触发。
标签: javascript jquery ajax asp.net-mvc asp.net-ajax