我确信这很简单。 我有一个控制器,其中有一个方法:
<RoutePrefix("Api/Stock")>
Public Class StockController
Inherits ApiController
<Route("{id}")>
Public Function [Get](id As String, cred As credentials) As IHttpActionResult
Try
Using conn As New serviceInterface(serviceInterface.serverType.test)
Dim stockItem = New stockItem() With {
.lotNo = id
}
Dim result = conn.webServicesAdvanced.stockHubAction(cred, stockItem)
Return Ok(result.obj)
End Using
Catch ex As Exception
Return InternalServerError(ex)
End Try
Return BadRequest()
End Function
End Class
如您所见,我允许2个参数:
我的凭据对象存储为cookie中的字符串。现在,我尝试了很多东西来获得$ .get调用,但我一直将 cred 对象作为null。 以下是我的一个例子:
self.lotEnquiry = function () {
var lot = self.lotNumber();
if (lot.length == 10) { // Our lot numbers are 10 characters long
var cred = { cred: $.parseJSON(dataModel.getUserObject()) };
console.log(cred);
$.get(stockUrl + "/" + lot, cred)
.done(function (data) {
console.log(data);
//app.navigateToLotEnquiry();
})
.fail(app.handleError);
}
};
,这仍显示为null。 我尝试使用指定的id和凭据构建对象:
var cred = {
id: self.lotNumber,
cred: $.parseJSON(dataModel.getUserObject())
};
或者甚至只是对象本身:
var cred = $.parseJSON(dataModel.getUserObject());
我甚至尝试过将其作为字符串提交。
无论我尝试什么,该对象始终为null(但如果我执行console.log,我可以看到所有内容)。
有人能指出原因吗?
答案 0 :(得分:0)
这是因为我试图向 HttpGet 提供JSON对象。这是附加到URL。为了能够以JSON格式发送数据,我必须使用 HttpPost或HttpPut 。