【发布时间】:2015-08-28 13:58:51
【问题描述】:
我不明白为什么下面对我的“GetBatch”webapi 方法的调用不起作用。我不确定是否需要指定路由等。我确实有其他 HttpPost 方法,但请注意,我专门尝试调用我在下面定义的方法。
我能做些什么来解决? URL 应该是正确的,因为确实调用了不同的操作。感谢您的宝贵时间。
Javascript:
var accountGetBatchURL = '@HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority)@Url.Content("~/")api/Account/GetBatch';
function () {
'use strict';
var lastColumns = oTable.context[0].aoColumns;
var lastSearch = oTable.context[0].aoPreSearchCols;
var suppliedSearchParameters = new Array();
for (var i = 0; i < lastSearch.length; ++i) {
if (lastSearch[i].sSearch !== "") {
suppliedSearchParameters.push({ "column": lastColumns[i].mData, "value": lastSearch[i].sSearch });
}
}
var dataToSend = { 'searchParameters': suppliedSearchParameters };
$.ajax({
url: accountGetBatchURL,
type: 'POST',
cache: false,
contentType: 'application/json',
dataType: 'json',
data: JSON.stringify(dataToSend),
error: function (jqXHR, textStatus, errorThrown) {
bootbox.alert("There was a problem with sending the search parameters to the service for processing. Extended information: Error Number: " + textStatus + " Error Thrown: " + errorThrown);
},
success: function (json) {
bootbox.alert("Successfully sent search parameters to LMS Search service!")
}
});
}
C# 模型代码:
public class AccountSearchDTO
{
public AccountSearchParameterDTO[] searchParameters { get; set; }
}
public class AccountSearchParameterDTO
{
public string column { get; set; }
public string value { get; set; }
}
public class AccountSearchResultsDTO
{
public int numOfRows { get; set; }
}
C# 帐户控制器代码”:
[HttpPost]
public AccountSearchResultsDTO GetBatch([FromBody] AccountSearchDTO param)
{
AccountSearchResultsDTO results = new AccountSearchResultsDTO();
results.numOfRows = 0;
return results;
}
编辑:尝试对通过我的 AJAX 请求发送的 dataToSend 变量进行以下更改,但我仍然收到“404”错误:
var dataToSend = { 'param': { 'searchParameters': suppliedSearchParameters} };
【问题讨论】:
标签: javascript c# asp.net-web-api