В настоящее время я разрабатываю приложение, в котором есть таблица со списком записей.В настоящее время это передается обратно в мой вид следующим образом:
public ViewResult Index(FilteredViewModel viewModel, int? page )
{
...grabrecords..
return View(MyList.ToPagedList(pageNumber, pageSize));
}
PagedList - это IEnumerable, который я зацикливаю для создания таблицы записей.в верхней части моего просмотра у меня есть это:
@model PagedList.IPagedList<Models.MyViewItem>
Это все работает отлично, я выводить строки таблицы следующим образом:
@foreach (var item in Model)
{
@Html.DisplayFor(modelItem => item.SiteOrderID)
}
Теперь я хочу отфильтровать свою таблицу сa StartDate и EndDate, проверьте правильность этих двух полей, отфильтруйте мои результаты и вернитесь к представлению.
Определение моей модели принимает ViewModel ..
public ViewResult Index(FilteredViewModel viewModel, int? page )
и ViewModelвыглядит так:
public class FilteredViewModel
{
[Display(Name = "StartDate")]
[Required(ErrorMessage = "Please enter a start date")]
[DataType(DataType.Date)]
public DateTime StartDate { get; set; }
}
Моя форма находится на странице, отправка по тому же методу.(правильно или неправильно?)
@using (Html.BeginForm("Index", "Item", FormMethod.Post, new { id = "filterForm", @class = "" }))
{
<div class="filter-container clearfix">
<div class="filter-left">
<div class="inline-item filter-start-date">
@Html.TextBox("StartDate")
Я запутался в том, как все это связано, когда дело доходит до отображения сообщения об ошибке проверки.Это правильный способ выполнить проверку?Как бы я вывел Helper для метода проверки в представлении, учитывая, что модель уже связана с IEnumerable в представлении.Должен ли я передать ViewModel обратно как объект ViewBag или что-то?
Как правило, я просто запутался, как получить постраничный список и отфильтрованное сообщение, чтобы связать их вместе и заставить .NET выполнить проверку для меня.
Html. ValidationMessageFor
в данный момент отсутствует на странице, потому что я не совсем уверен, как она будет вписываться в головоломку, но это выглядит как правильный метод для использования.
TLDR:
1).Хотите знать, как использовать PagedList с ViewModel
2).Хотите знать, как получить отправленный объект обратной формы для проверки в представлении