我创建了一个 dnn 模块,使用 WebAPI 从服务器检索数据没有问题。但是,当我尝试执行更新时,无论我尝试什么,我都会继续收到错误。在 Firebug 中查看,我可以发布正在发布的数据:
!(http://www.virtual-essentials.com/personal/firebug1.png)
但是,当我调试时,我只看到默认 (null.setnull) 值(bool = false,int = 0,string= empty)。
然后,当然响应不好,结果如下:!(http://www.virtual-essentials.com/personal/firebug2.png)
我已经尝试了所有我能想到的事情的组合,但无法弄清楚这一点,我快疯了。
这是 ajax 调用: //U//操作 - 更新 self.updateTestimonial = function (objItem) { var method = "UpdateTestimonial"; self.UpdatePublishStatus(objItem);
$.ajax({
type: "POST",
contentType: "application/json",
url: sf.getServiceRoot('VirtualEssentials/Testimonials') + "TestimonialWeb/" + method,
beforeSend: sf.setModuleHeaders,
data: ko.toJSON({ item: new TestimonialInfoDTO(objItem.TestimonialID(), objItem.IsPublished())}),
success: function (data) {
self.userAlertText(objItem.Testimonial() + ' changes have been saved');
//self.getTestimonials(); //get the new data after updates
},
error: function (xhr, status, error) {
self.userAlertText('OOPS! Error updating ' + objItem.Testimonial + '<br />' + (error));
//put the status back
self.UpdatePublishStatus(objItem);
}
});
};
这是 WebAPI 控制器调用:
[HttpPost]
[DnnModuleAuthorize(AccessLevel = SecurityAccessLevel.Edit)]
public System.Net.Http.HttpResponseMessage UpdateTestimonial(TestimonialInfoDTO item)
{
try
{
Controller.TestimonialController objController = new Controller.TestimonialController();
objController.PublishTestimonial(item.TestimonialID, item.IsPublished);
}
catch (HttpResponseException ex)
{
return ex.Response;
}
}
真诚感谢您对此的任何帮助!