我无法想象如何让数据只显示John的条目。我正在使用dataTables,所以不知道如何让它工作。当我启动应用程序时,它仍会显示所有用户。这是我到目前为止得到的任何帮助将不胜感激。我试图在程序中获取where子句我是否在模型中创建它而不是在控制器中。
控制器
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Asp.NetMVCCrud.Models;
namespace Asp.NetMVCCrud.Controllers
{
public class EmployeeController : Controller
{
// GET: Employee
public ActionResult Index()
{
return View();
}
public ActionResult GetData()
{
using(DBModel db = new DBModel())
{
db.Employees.Where(Employee => Employee.Name == "John");
List<Employee> empList = db.Employees.ToList<Employee>();
return Json(new { data = empList }, JsonRequestBehavior.AllowGet);
}
}
}
}
生成员工模型
namespace Asp.NetMVCCrud.Models
{
using System;
using System.Collections.Generic;
public partial class Employee
{
public int EmployeeID { get; set; }
public string Name { get; set; }
public string Postion { get; set; }
public string Office { get; set; }
public Nullable<int> Age { get; set; }
public Nullable<int> Salary { get; set; }
}
}
查看索引
@{
ViewBag.Title = "Employee List";
}
<h2>Employee Crud Operations</h2>
<table id="employeetable" class="table table-striped table-bordered">
<thead>
<tr>
<th>Name</th>
<th>Position</th>
<th>Office</th>
<th>Age</th>
<th>Salary</th>
</tr>
</thead>
</table>
<link href="https://cdn.datatables.net/1.10.16/css/dataTables.bootstrap4.min.css" rel="stylesheet" />
@section scripts{
<script src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/1.10.16/js/dataTables.bootstrap4.min.js"></script>
<script>
$(document).ready(function () {
$("#employeetable").DataTable({
"ajax": {
"url": "/Employee/GetData",
"type": "GET",
"datatype":"json"
},
"columns": [
{ "data": "Name" },
{ "data": "Postion" },
{ "data": "Office" },
{ "data": "Age" },
{ "data": "Salary" },
]
});
});
</script>
}
答案 0 :(得分:1)
此行db.Employees.Where(Employee => Employee.Name == "John")
目前尚未在功能上执行任何操作。它正在向名为John的员工查询数据库,然后不对该数据执行任何操作。我想你想要
List<Employee> empList = db.Employees.Where(Employee => Employee.Name == "John").ToList();
return Json(new { data = empList }, JsonRequestBehavior.AllowGet);
您需要将过滤后的数据分配给变量,以便对其进行引用,然后将该数据作为json的一部分返回
答案 1 :(得分:0)
因为您的代码正在返回empList
,这是所有员工。
您有一个LINQ查询(此行db.Employees.Where(Employee => Employee.Name == "John");
)来获取已过滤的子集,但您没有执行该查询或使用该结果返回结果。
仅返回已过滤的结果。这应该工作
var filteredList = db.Employees.Where(e=> e.Name == "John").ToList();
return Json(new { data = filteredList }, JsonRequestBehavior.AllowGet);