我找不到爲什麼以下調用我的「GetBatch」webapi方法不起作用。我不確定是否需要指定路由等。我確實有其他HttpPost方法,但請注意,我特別試圖調用我在下面定義的方法。C#WebAPI - 在Model中調用POST方法作爲參數
我能做些什麼來解決? 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;
}
編輯:嘗試了以下變化我dataToSend變量,通過我的AJAX請求發送,但我仍然收到「404」錯誤:
var dataToSend = { 'param': { 'searchParameters': suppliedSearchParameters} };
我想你的建議;看到我上面的'$ .ajax()'參數,但仍然沒有成功。我收到以下錯誤信息:'{「消息」:「沒有HTTP資源發現,請求URI‘[[URL] /帳號/ GetBatch’匹配。「,」MessageDetail「:」在控制器'Account'上找不到與'GetBatch'名稱匹配的操作。「} –
請參閱我的更新回答 –
感謝您的幫助;仍然出現同樣的錯誤。工作到同一個控制器,所以我不知道我做錯了什麼。 –