[英]How to post four parameters from ajax to MVC API controller
我需要將4個參數從AJAX發布到MVC api方法。 調用了Api方法,但是所有變量都有默認值。 年和月為零, 應用和級別的值為空。
知道我的代碼中有什么問題嗎?
$.ajax({
url: "/api/home/GetLogList",
method: 'POST',
dataType: 'json',
data: { year: 2017, month: 5, app: "hello", levels: ["aa", "bb"] },
contentType: 'application/json; charset=utf-8',
success: function (logs) {
alert("successs");
},
error: function (jqXHR, textStatus) {
alert("fail");
}
})
API
[HttpPost]
[Route("api/home/GetLogList")]
public async Task<IEnumerable<Log>> GetLogList(int year, int month, string app, IEnumerable<string> levels)
{
using (var client = new HttpClient())
{
var refreshedLogs = await GetLogList(client, year, month, app, null);
return refreshedLogs;
}
}
我認為您唯一的解決方案是為方法參數創建viewModel?
public class LogListVM {
public int year { get; set; }
public int month { get; set; }
public string app { get; set; }
public IEnumerable<string> levels { get; set; }
}
[HttpPost]
[Route("api/home/GetLogList")]
public async Task<IEnumerable<Log>> GetLogList(LogListVM params)
{
using (var client = new HttpClient())
{
var refreshedLogs = await GetLogList(client, params.year, params.month, params.app, null);
return refreshedLogs;
}
}
JS不變。
contentType:'application / json; charset = utf-8'
數據類型以json格式發送-在您的情況下,您需要轉換為json
dataType:'json'
將數據類型從服務器返回到json
$.ajax({
url: "/api/home/GetLogList",
contentType: 'application/json; charset=utf-8', // data type to be send to server in json format
method: 'POST',
dataType: 'json', // return type of data from server - should be json
data:JSON.stringify( { year: 2017, month: 5, app: "hello", levels: ["aa", "bb"] }),
success: function (logs) {
alert("successs");
},
error: function (jqXHR, textStatus) {
alert("fail");
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.