【发布时间】:2021-07-22 14:23:19
【问题描述】:
我在根据控制器的结果填充数据表时遇到问题。
我已经阅读了很多关于它的帖子,但我不知道为什么会出现这个错误。
这是我的控制器
[HttpPost]
public async Task<IActionResult> SearchOrder([FromBody]SearchInfo order)
{
var Url = _appSettings.CashSystemAPIUrl + "api/Order/GetOrderBy";
var r = await _repository.GetAllAsync(Url, order, HttpMethod.Post);
var result = Json(new { data = r});
return result;
}
这是我的模型
public class SearchInfo
{
public int OrderType { get; set; }
public string OrderKeyword { get; set; }
}
这是我的观点
<table id="tblOrdersData" class="table table-striped table-bordered" style="width:100%">
<thead>
<tr>
<th>Order Number</th>
<th>Invoice Number</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
这是我的 javascript
<script type="text/javascript">
$(document).ready(function () {
$('#btnsearch').click(function () {
var dataTable;
var selectedValue = $("#searchCategory").val();//$("#searchCategory option:selected").text();
var textboxvalue = $('#searchvalue').val()
var SearchInfo = {};
SearchInfo.OrderType = parseInt(selectedValue);
SearchInfo.OrderKeyword = textboxvalue;
dataTable = $('#tblOrdersData').DataTable({
"ajax": {
"contentType": "application/json; charset=utf-8",
"datatype": "json",
"type": "POST",
"url": "/Orders/SearchOrder",
"datatype": JSON.stringify(SearchInfo)
},
"columns": [
{ "data": "orderNo", "width": "50%" },
{ "data": "invoiceNo", "width": "20%" }
]
});
});
});
</script>
这是调试的截图
OrderType和OrderKeyword中有一个值
但是当它在控制器中被传递时它变成了 null。
但是当我使用此代码调用控制器时
$.ajax({
contentType: 'application/json; charset=utf-8',
dataType: 'json',
type: 'POST',
url: '/Orders/SearchOrder',
data: JSON.stringify(SearchInfo),
success: function (result) {
alert(result);
location.reload();
},
error: function () {
alert("Error!")
}
});
数据正确传递给控制器
但我需要一种方法从控制器获取结果以填充数据表。
那么为什么第一个 javascript 将 null 值传递给控制器?我不明白。代码对我来说是一样的。那为什么它是空的呢?
谢谢
更新
dataTable = $('#tblOrdersData').DataTable({
"ajax": {
"contentType": 'application/json; charset=utf-8',
"datatype": 'json',
"type": 'POST',
"url": '/Orders/SearchOrder',
"data": JSON.stringify(SearchInfo)
},
"columns": [
{ "data": "tco", "width": "50%" },
{ "data": "orderNo", "width": "20%" },
{ "data": "fullPrice", "width": "20%" },
]
});
但控制器仍然收到 null。
【问题讨论】:
-
你只需要仔细检查你的JS代码,为什么你有两次数据类型?
标签: asp.net asp.net-mvc asp.net-core datatables