【发布时间】:2020-04-20 08:12:19
【问题描述】:
我正在尝试使用来自剃刀视图的 ajax 调用在控制器方法中进行简单的 post 调用。ajax 调用确实调用了控制器方法,但它不会发送我试图发送的对象。我尝试了 Stackoverflow 的多种解决方案但均未成功,包括使用 Json.stringify() 方法和在控制器方法中使用 [HttpPost] 属性。我也将 View 中的对象名称与控制器方法参数的名称相同。这是脚本我在哪里进行 Ajax 调用:
<script>
$(document).ready(function () {
$('.send-all').on('click', function() {
var data = $('#verticalScroll tr').map(function () {
var $row = $(this);
return {
id: $row.find('.id').text().trim(),
companyName: $row.find('.companyname').text().trim(),
price: $row.find('.price').text().trim(),
quantity: $row.find('.quantity').text().trim(),
}
}).get();
var BID = [];
for (var i = 0; i < data.length; i++) {
if (data[i].id != null && data[i].id != "") {
BID.push(data[i]);
}
}
$.ajax(
{
type: "POST",
url: "/User/UpdateBID",
data: BID,
cache: false,
async: true,
dataType: "json",
success: function (data) {
alert(data);
},
});
});
});
</script>
这是来自控制器的方法:
public ActionResult UpdateBID(object BID)
{
string c = JsonConvert.SerializeObject(BID);
//Context.UpdateBID(b);
return RedirectToAction("SesionIndividual", TempData["LoginModel"]);
}
调用了控制器方法,但是对象为null。我也确定了JavaScript对象不为null。我也尝试发送其他对象只是为了测试它,我有同样的结果,控制器中的参数方法为空。
【问题讨论】:
-
data: BID,->data: { BID: BID }
标签: javascript jquery ajax asp.net-mvc