c# - 表的 ASP.NET 最佳实践
问题描述
我正在开发一个 ASP.NET Core 项目,该项目有一个表,我根据它们所在的当前选项卡进行过滤。我最初的想法是使用 JSON 调用 C# 并获取表格的合格项目列表。
我想到的下一个计划是获取所有合格项目的列表,然后在 for 循环中使用过滤器?
public JsonResult OnGetGetSetups(string condition,int vehID)
{
if (vehID == 0)
return null;
switch (condition)
{
case "Dirt":
return new JsonResult(_context.Setups.Include(d => d.Driver).Include(sd => sd.SetupDetails).Include(c => c.SetupDetails.Condition).Where(a => a.SetupDetails.Condition.Name == condition && a.VehicleId == vehID).ToList());
case "Carpet":
return new JsonResult(_context.Setups.Include(d => d.Driver).Include(sd => sd.SetupDetails).Include(c => c.SetupDetails.Condition).Where(a => a.SetupDetails.Condition.Name == condition && a.VehicleId == vehID).ToList());
default:
List<Setup> tmp = _context.Setups.Include(d => d.Driver).Include(sd => sd.SetupDetails).Include(c => c.SetupDetails.Condition).Where(a => a.VehicleId == vehID).ToList();
return new JsonResult(tmp);
}
}
然后我有 3 个调用 this 的 eventListeners GetSetups
。这似乎是解决这个问题的一种非常混乱的方法。
有没有更好的方法来解决这个问题?
与此类似的东西:
$(function () {
$("#allSetups").on("click", function () {
if (activeTab == "allSetups") {
return;
}
activeTab = "allSetups";
$("#infoArea").empty();
var vehId = document.getElementById('vehicleId').value;
var url2 = '@Url.Page("/setups/search","GetSetups")';
$.getJSON(url2, { condition: "all", vehID: vehId }, (data) => {
$.each(data, function (i, item) {
$("#vehcileId").append(`<option value="${item.vehicleId}">${item.name}</option>`);
});
});
});
});
解决方案
你可以这样试试:
public JsonResult OnGetGetSetups(string condition, int vehID)
{
if (vehID == 0)
return null;
return new JsonResult(_context.Setups.Include(d => d.Driver)
.Include(sd => sd.SetupDetails)
.Include(c => c.SetupDetails.Condition)
.Where(a => a.VehicleId == vehID
&& ((condition != "Dirt" && condition != "Carpet") || a.SetupDetails.Condition.Name == condition))
.ToList());
}
推荐阅读
- groovy - Apache Camel - 可以在 csv 文件中插入一行
- r - 将 case_when 与多个真条件一起使用
- angular - 矩阵表链接到 Angular 中的组件
- google-apps-script - 一张一张的谷歌应用脚本运行功能
- html - 单击“x”按钮时烧瓶闪烁消息未关闭
- python - 将 API 端点动态添加到现有的 Flask 应用程序
- shiny - R闪亮的无效下标类型'列表'
- amazon-web-services - 对于在 AWS 胶水和规则存储库中作为 Dynamo DB 运行的 pypark 中基于规则的引擎,什么是有效的设计?
- .net-core - .Net-Core ReportGenerator - 如何递归匹配 Cobertura 覆盖文件
- angular - 如何使用 ionic 4 更改警报控制器背景颜色