Я следовал Учебному пособию Contoso от Microsoft, и мои Scaffolding построили извлечение таблиц данных из внешнего SQL Server.Я попытался вставить код, аналогичный тому, что есть в руководстве, и он создает ссылки, но не сортирует и не фильтрует, как следует.Это только обновляет страницу.Кажется, что-то работает, потому что, когда я нажимаю ссылки для сортировки, параметры URL меняются, но таблица не меняется.
Вот контроллер для сортировки / фильтрации. Действия
public ActionResult Index(string sortOrder, string searchString)
{
ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "Name_desc"
: "";
ViewBag.DateSortParm = sortOrder == "Date" ? "Date_desc" : "Date";
var schedules = from s in db.schedules
select s;
if (!String.IsNullOrEmpty(searchString))
{
schedules = schedules.Where(s =>s.designation.Contains(searchString)
|| s.Function.Contains(searchString));
}
switch (sortOrder)
{
case "Name_desc":
schedules = schedules.OrderByDescending(s => s.designation);
break;
case "Date":
schedules = schedules.OrderBy(s => s.promise_ship_date);
break;
case "Date_desc":
schedules = schedules.OrderByDescending(s => s.promise_ship_date);
break;
default:
schedules = schedules.OrderBy(s => s.promise_ship_date);
break;
}
return View(db.schedules.ToList());
}
Вот моя страница указателя
@model IEnumerable<WebApplication1.Models.schedule>
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
@using (Html.BeginForm())
{
<p>
Find by designation or function: @Html.TextBox("searchString")
<input type="submit" value="Search"/>
</p>
}
<table class="table">
<tr>
<th>
@Html.ActionLink("Designation", "Index", new { sortOrder = ViewBag.NameSortParm })
</th>
<th>
@Html.DisplayNameFor(model => model.Function)
</th>
<th>
@Html.DisplayNameFor(model => model.lv_mv)
</th>
<th>
@Html.ActionLink("Promise Ship Date", "Index", new { sortOrder = ViewBag.DateSortParm })
Любая помощь будет принята с благодарностью.