【发布时间】:2020-08-05 19:56:08
【问题描述】:
我有一个像这样的 AJAX 函数
$.ajax({
type: "POST",
url: "@IGT.baseUrl/JODetails/SpecialOrderSelection",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ allParts: array }),
dataType: "json",
traditional: true,
success: function () {
alert('Success!');
},
error: function () {
alert('Error! ');
}
});
数组没有发送到我的方法,看起来像这样
public ActionResult SpecialOrderSelection(ItemViewModel model, ItemPartViewModel[] allParts)
{
if (ModelState.IsValid)
{
JobOrder jobOrder = db.JobOrders.Find(model.Id);
if (jobOrder == null)
{
return HttpNotFound();
}
ViewBag.JobOrderID = jobOrder.ID;
TempData["model"] = model;
return RedirectToAction("SpecialOrderSummary", new { id = model.Id });
}
return View(model);
}
这是我的 itemViewModel
public class ItemViewModel
{
[Required]
public int Id { get; set; }
[Required]
public int JobId { get; set; }
public string ItemId { get; set; }
public string ItemName { get; set; }
public string MFGNumber { get; set; }
public IList<ItemPartViewModel> Parts { get; set; }
}
这是我的 ItemPartView 模型
public class ItemPartViewModel
{
[Required]
public int ID { get; set; }
public int ItemID { get; set; }
public string PartID { get; set; }
public string MFGNumber { get; set; }
public string PartName { get; set; }
public float QtyInItem { get; set; }
public float Qty { get; set; }
public bool MoveAll { get; set; }
public float OnHand { get; set; }
public float OnWorkOrder { get; set; }
public float Committed { get; set; }
public float FSTK { get; set; }
// This is the additional property to contain what user picks
public PartActionType SelectedActionType { get; set; }
}
allParts 返回为 NULL(我从控制台日志中确认该数组是其中的数据),并且视图页面响应“错误!”在代码甚至通过 POST 方法运行之前的消息。
这是为什么?
【问题讨论】:
-
"@IGT.baseUrl" 这是视图的一些类助手吗?也许你不能调用 C# 分类在 ajax 中?
-
您是否检查了浏览器 DevTools 中的网络选项卡以查看您的请求是通过哪个 URL 发出的?如果是 CORS 请求,大多数浏览器会在 POST 上执行 OPTION 请求,以验证 URL 是否允许 CORS。这将立即导致错误并且不会调用您的方法
-
@witheroux 它转到方法,只是弹出警报“错误”消息
-
您是否还发布了
model数据?你的ItemViewModel上是否有数据验证?ModelState.IsValid的值是多少? -
问题是它正在自动发布。所以我添加了 event.prevent 默认值,并且我现在通过我的 ajax 传递视图模型@jasen
标签: javascript c# jquery ajax asp.net-mvc