![](/img/trans.png)
[英]AJAX post data is null when it reaches the ASP.NET Core 2.1 controller
[英]Net Core 2.1 Ajax Post to Controller
我已經在這上面拉了一段時間了,只是看不到我在做什么錯。
我想將SWAL對話框中的一系列字段發布到我的控制器上,但是對我而言,它根本不會,甚至不會調用Post方法。 收到的錯誤只是400錯誤代碼。
var issue = JSON.stringify(this.swalForm);
$.ajax({
type: "POST",
url: "../api/Issues",
contentType: "application/json; charset=utf-8",
beforeSend: function (xhr) {
xhr.setRequestHeader("RequestVerificationToken",
$('input:hidden[name="__RequestVerificationToken"]').val());
},
dataType: "json",
data: issue,
error: function (xhr) {
alert('Error: ' + xhr.statusText);
},
success: function (msg) {
console.log(msg.result);
}
});
那是我的AJAX電話
[HttpPost]
public async Task<IActionResult> PostIssue([FromBody] Issue issue)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
_context.Issue.Add(issue);
await _context.SaveChangesAsync();
return CreatedAtAction("GetIssue", new { id = issue.Id }, issue);
}
這是我控制器中的Post方法
public partial class Issue
{
public Issue()
{
Document = new HashSet<Document>();
IssueMember = new HashSet<IssueMember>();
}
public int Id { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public DateTime? DueDate { get; set; }
public int CategoryId { get; set; }
public int StatusId { get; set; }
public int? PriorityId { get; set; }
public int ProjectId { get; set; }
public string Location { get; set; }
public int TeamId { get; set; }
public DateTime CreatedDate { get; set; }
public int CreatedById { get; set; }
public DateTime? ModifiedDate { get; set; }
public int? ModifiedById { get; set; }
public bool Active { get; set; }
public Category Category { get; set; }
public User CreatedBy { get; set; }
public User ModifiedBy { get; set; }
public Priority Priority { get; set; }
public Project Project { get; set; }
public Status Status { get; set; }
public Team Team { get; set; }
public ICollection<Document> Document { get; set; }
public ICollection<IssueMember> IssueMember { get; set; }
}
模型看起來像什么
{"Title":"Ajax Issue","Description":"Made with ajax","DueDate":"2018-08-21","CategoryId":"3","StatusId":"2","PriorityId":"3","ProjectId":"1","Location":"Home","TeamId":"1","CreatedDate":"2018-08-21","CreatedById":"1","ModifiedDate":"2018-08-21","ModifiedById":"1","Active":"Active"}
最后,有效載荷在郵政上的樣子
弄清楚了!! SMH ...
Active是我的控制器中的布爾變量,但在選中時會向其傳遞字符串“ Active”。 JSON與模型不匹配,因此沒有對api方法的調用。
檢查您的有效載荷,並確保它與您的模型人員匹配!
JavaScript代碼似乎還可以。 第一次嘗試使用fiddler或postman調試Web api,然后您將從PostIssue()方法(而不是500)中獲得准確的錯誤消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.