+如何将数据从Ajax传递到控制器MVC 5

时间:2019-05-17 16:30:37

标签: c# ajax asp.net-mvc

我有一个具有html表单的视图。此表单将数据发布到两个实体。第一个实体与另一个实体存在一对多关系。

此表单具有html表,用户可以在其中添加所需的任意多行。然后,在提交表单时,表单数据将发布到entity1,插入html表中的数据应被收集并添加到entity2,与{{1 }}。

我收集了用户插入html表中作为对象js数组的数据 并尝试将其作为ajax发送,以便在提交表单时在控制器中发布操作。

我有一个错误:

  

[所需的防伪表单字段“ __RequestVerificationToken”不存在]

因此我在标头中传递了令牌,并添加了授权过滤器以发布操作 从ajax发送的数据不为空,但在控制器中以空值接收。

我该如何解决?

enter image description here

entity1

这是我要从ajax发布到的发布操作。我的数据应该包含在 cols.push("DIGITAL_FILE_TYPE_ID"); cols.push("DOCUMENT_LAPI_ID"); var digitalMapRows = []; $("table#digital-map-table tbody tr").each(function () { data = {}; var selectedDigitalMapVal = $(this).data("selectedDigitalMapVal"); data[cols[0]] = selectedDigitalMapVal; var documentId = $(this).data("documentID"); data[cols[1]] = documentId.toString(); digitalMapRows.push(data); data = {}; }); var headers = { __RequestVerificationToken: $('input[name="__RequestVerificationToken"]').val() }; if (digitalMapRows != null) { $.ajax({ headers: headers, url: "@Url.Action("Initiate")", type: "POST", cache: false, data: JSON.stringify(digitalMapRows), dataType: "json", success: function (succ) { console.log(succ); }, error: function (err) { console.log(err.statusText); } }); } 中,而不是单独的参数吗?因此,并非在所有情况下都填充在此参数中传递的数据。

viewmodel

0 个答案:

没有答案