我有一个AJAX调用,我传递了这些数据:
data: JSON.stringify({ data: holder, customer: customerID }),
持有人是array
,看起来像这样
[1, 2, 3, 4]
和customerID是int
3346759
我试图将它传递给这个ASP.NET控制器:
public List<CustomerQuestionsClass>
updateCustomersQuestions(List<CustomerQuestionsClass> items, int CustomerID)
这是我的CustomerQuestionsClass类:
public class CustomerQuestionsClass
{
public int CustomerID { get; set; }
public int QuestionID { get; set; }
}
当我尝试传递此数据时,出现405错误。当我从我的ASP.NET控制器和ajax调用中取出所有的customerID内容时,ajax调用有效,所以我必须错误地传递CustomerID,我做错了什么?
答案 0 :(得分:0)
您发布到控制器的数据与其输入参数不匹配。
根据您的方法签名,它需要一个名为items
的集合和一个名为CustomerID
的int,因此为了让您的ajax调用工作,您需要更改JS对象的键的名称匹配您的操作方法参数。
查看:
@model MVCTest.Models.CustomerQuestionsClass
<button>Send</button>
@section scripts{
<script type="text/javascript">
$(function () {
$("button").on("click", function () {
var holder = [1, 2, 3, 4];
var id = 3346759;
var data = { items: holder, CustomerID: id};
$.ajax({
url: "@Url.Action("updateCustomersQuestions","Controller")",
type: "POST",
data: JSON.stringify(data),
contentType: "application/json"
})
.done(function (data) {
});
});
});
</script>
}
控制器操作:
[HttpPost]
public List<CustomerQuestionsClass> updateCustomersQuestions(List<CustomerQuestionsClass> items, int CustomerID)
{
return new List<CustomerQuestionsClass>();
}