想知道是否有人能看到我能看到的东西。该网站给我一个错误"http://localhost:XXXXX/Sales/Edit/[insert ID here]
回复状态为400(错误请求)"
这是我的控制人员:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Edit([Bind(Include = "")] Sale sale)
{
// Retrieve Part Number
Product product = await RetrieveProductUsingPartNumber(filter["ProductPartNumber"]);
// Validate Part Number
if (ValidateProduct(product)) s.ProductId = product.Id;
if (ModelState.IsValid)
{
salesRepository.Update(s);
await salesRepository.SaveAsync();
return Json(new SaleDtoWeb()
{
ProductPartNumber = s.Product.PartNumber
});
}
// Set response to error
Response.StatusCode = 400;
// Retrieve error messages
List<string> errors = RetrieveErrorMessages();
return Json(new { messages = errors });
}
这是我的帖子
updateItem: function (item) {
return $.ajax({
type: "POST",
url: "Sales/Edit/" + item.Id,
data: AddAntiForgeryToken(item),
dataType: "json",
success: function (data) {
// Show Success message
showAlert('.alert-success', 'Successfully edited item');
// Hide Error alert
$('.alert-danger').hide();
},
error: function (data) {
var messages = JSON.parse(data.responseText);
// Format messages from server
var errorMessages = formatErrorMessages(messages['messages']);
// Show Error messages
showAlert('.alert-danger', errorMessages);
// Hide Success alert
$('.alert-success').hide();
}
});
}
编辑:我已将参数/方法签名添加到控制器。请注意,我没有添加绑定项目,因为我想专注于另一个模型/表格上的PartNumber
答案 0 :(得分:0)
尝试添加:
Response.TrySkipIisCustomErrors = true;
答案 1 :(得分:0)
看起来你的ModelState不是有效的。控制器方法签名是什么样的?它与AddAntiForgeryToken(item)传递的内容是否匹配? 错误消息数组告诉您什么?