Я делаю базовое приложение Movie MVC. У меня есть сортировка, которая будет отображать фильмы в порядке MovieId на домашней странице, в представлении есть ссылка, которую вы можете нажать, чтобы изменить порядок воспроизведения фильмов в алфавитном порядке на основе имени фильма. Однако, когда я перехожу на другую страницу и позже вернусь, сортировка будет всегда возвращаться к организации MovieId, есть ли способ сохранить сортировку в алфавитном порядке, если я уйду и вернусь на главную страницу?Как сохранить сортировку страницы бритвы в MVC?
public class HomeController : Controller
{
private MovieDb db = new MovieDb();
public ActionResult Index(string sort, string Search_Data)
{ //Variable sort for sorting
IQueryable<Movie> movie = db.Movies;
ViewBag.SortingName = String.IsNullOrEmpty(sort) ? "Name_Description" : "";
//Search bar
if (!String.IsNullOrEmpty(Search_Data))
{
movie = movie.Where(s => s.MoviesName.Contains(Search_Data));
}
//Search bar
var albu = from alb in db.Movies select alb;
{
albu = albu.Where(alb => alb.MoviesName.ToUpper().Contains(Search_Data.ToUpper()));
}
//Sorting in switch
switch (sort)
{
case "Name_Description":
movie = movie.OrderBy(alb => alb.MoviesName);
break;
default:
movie = movie.OrderBy(alb => alb.MovieID);
break;
}
return View(movie.ToList());
}
public ActionResult Details(int id = 0)
{
Movie m = db.Movies.Find(id);
if (m == null)
{
return HttpNotFound();
}
else
{
//HEY SHOW ME ACTORS
m.Actors = (from e in db.Actors
where e.MovieID.Equals(id)
select e).ToList();
}
//m.Actors.Count();
return View(m);
}
#region Create Movie
public ActionResult Create()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Movie movie)
{
if (ModelState.IsValid)
{
db.Movies.Add(movie);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(movie);
}
#endregion
#region Edit Movie
public ActionResult Edit(int id)
{
Movie movie = db.Movies.Find(id);
if (movie == null)
{
return HttpNotFound();
}
return View(movie);
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(Movie movie)
{
if (ModelState.IsValid)
{
db.Entry(movie).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(movie);
}
#endregion
#region Delete Movie
public ActionResult Delete(int id)
{
Movie movie = db.Movies.Find(id);
return View(movie);
}
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(int id)
{
Movie movie = db.Movies.Find(id);
db.Movies.Remove(movie);
db.SaveChanges();
return RedirectToAction("Index");
}
#endregion
}
Здесь Главная страница
<h2>Movies</h2>
<p>
@Html.ActionLink("All Actors", "Index", "Actor", null, new { @class = "btn btn-success" })
</p>
<p>
@Html.ActionLink("Create New", "Create", null, new { @class = "btn btn-primary" })
</p>
@using (Html.BeginForm("Index", "Home", FormMethod.Get))
{
<p>
Search Name: @Html.TextBox("Search_Data")
<input type="submit" value="Filter" />
</p>
}
@Html.ActionLink("Rearrange Alphabetically", "Index", new { sort = ViewBag.SortingName})
<div class="table-responsive" >
<table class="table table-striped">
<tr class="info">
<th>
@Html.DisplayNameFor(model => model.MoviesName)
</th>
<th>
@Html.DisplayNameFor(model => model.Description)
</th>
<th></th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
<a href="@Url.Action("Details", null, new{id = item.MovieID})">@Html.DisplayFor(modelItem => item.MoviesName)</a>
</td>
<td>
@Html.DisplayFor(modelItem => item.Description)
</td>
<td>
<div class="form-group">
<div class="btn-group" data-toggle="buttons">
<label class="pdsa-radiobutton btn btn-warning active">
<span class="glyphicon glyphicon-pencil"></span>
@Html.ActionLink("Edit", "Edit", new { id = item.MovieID })
</label>
</div>
</div>
</td>
<td>
<div class="form-group">
<div class="btn-group" data-toggle="buttons">
<label class="pdsa-radiobutton btn btn-danger active">
<span class="glyphicon glyphicon-minus"></span>
@Html.ActionLink("Delete", "Delete", new { id = item.MovieID })
</label>
</div>
</div>
</td>
</tr>
}
</table>
</div>
@section scripts
{
<script>
$(function() {toastr.info("Click Movie for details") })
</script>
}
Заранее спасибо за любую помощь данной
ли вы хотите, чтобы по умолчанию сортировка по алфавиту? – haley
@haley, если я нажму ссылку для его сортировки в алфавитном порядке, а затем, если я покину страницу, а затем вернусь на домашнюю страницу на более позднем этапе, я хочу, чтобы она оставалась отсортированной в алфавитном порядке. На данный момент, если я покину страницу и позже вернусь, она вернется к организации MovieID – drapu