ASP.NET ViewModel путаница с PagedList

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

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)
}

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

0 ответов

Другие вопросы по тегам