我想将一个JavaScript创建的对象发送到一个ASP.NET PageMethod。此对象镜像现有自定义业务对象的属性,所以我希望我可以传递一个对象而不是每个属性的参数。尝试使用这种方法的时候,我得到一个错误“未知的Web方法SavePart发送一个复杂的对象作为参数到Asp.Net PageMethod
的Javascript:
function() {
var pt = { Id: 1, Onhand: 20, LowPoint: 30, __type: 'Custom.Objects.Part'};
$.ajax({
type: 'POST',
url: 'partlist.aspx/SavePart',
data: JSON.stringify(pt),
contentType: 'application/json; charset: utf-8;'
dataType: 'json',
success: function(results) { alert('Success!'); }
});
}
代码背后:
<WebMethod()> _
Public Shared Function SavePart(pt as Custom.Objects.Part) as Boolean
Dim repo as new PartRepository()
return repo.Save(pt)
End Function
我使用另一个PageMethod的刚刚接受一个int ,并且这个工作正常。
啊......这实际上是有道理的。只是发送pt可能会导致解串器尝试将对象的每个属性作为单独的参数传递给webmethod。 –