【发布时间】:2021-09-01 15:34:00
【问题描述】:
我有一个显示一些表格和统计信息的 asp.net 仪表板页面,以及一个带有一些复选框和日期范围选择器的过滤器面板。每当单击复选框时,我都会编写 jQuery 来触发。 jQuery 使用 Ajax POST 将过滤器设置发送到控制器,然后控制器查询数据库、应用过滤器设置、创建新页面模型并将其发送到视图。在这一点上,我希望新创建的剃刀视图和浏览器显示一个新呈现的页面,但没有任何变化,我在控制台中收到 500 错误,可能是因为控制器没有发送适当的响应。有没有更好的方法来实现我想要做的事情?
数据已成功到达控制器,并且正在正确创建新页面模型。在这之后我不知道该怎么做。
javascript:
function sendFilterData() {
var checks = getFilterSettings(); //stringified JSON
$.ajax({
method: 'POST',
url: '@Url.Action("ApplyDashboardFilter", "Home")',
data: {
checks: checks, start: globalstart.format("YYYY-MM-DD HH:mm:ss"), end: globalend.format("YYYY-MM-DD HH:mm:ss") },
success: function (response) {
//???
},
failure: function (response) {
console.log(response);
}
});
}
C#
public IActionResult ApplyDashBoardFilter(string checks, DateTime start, DateTime end)
{
var filters = JsonConvert.DeserializeObject<List<FilterItem>>(checks);
ViewModel vm = new ViewModel();
foreach(var f in filters)
{
vm.AddFilter(f);
}
vm.StartDate = start;
vm.EndDate = end;
return Dashboard(vm);
}
public IActionResult Dashboard(ViewModel model)
{
//Get data and apply filters
return View(model);
}
【问题讨论】:
标签: javascript c# jquery asp.net-mvc