ASP.NET ViewModel путаница с PagedList - PullRequest
0 голосов
/ 08 декабря 2018

В настоящее время я разрабатываю приложение, в котором есть таблица со списком записей.В настоящее время это передается обратно в мой вид следующим образом:

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).Хотите знать, как получить отправленный объект обратной формы для проверки в представлении

...