你好伙伴Stackoverflowers,
我目前正在开发ASP.NET MVC 4.5应用程序。我目前有一个PagedList,我想按日期过滤,在第一次请求时可以正常工作。
我的问题:当我点击分页列表底部的第二页链接时,由于新请求,我正在丢失当前日期。
虽然找到错误有点困难:
我的分页列表链接:
@Html.PagedListPager(Model.OfferList, page => Url.Action("Index", new { page }))
我的搜索表单,指向Home Controller:
@using (Html.BeginForm("Index", "Home"))
{
@Html.AntiForgeryToken()
<div class="row">
<div class="col-xs-12 well text-center">
<h1>Offer Catalog</h1><br />
<div class="form-group col-xs-12 col-md-offset-1 col-md-4">
@Html.LabelFor(model => model.OfferDateSearch.FromDate, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DatetimePickerFor(model => model.OfferDateSearch.FromDate, new DatePickerOption() { })
@Html.ValidationMessageFor(model => model.OfferDateSearch.FromDate, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-xs-12 col-md-1">
<button type="submit" class="btn btn-md btn-primary"><i class="fa fa-search" aria-hidden="true"></i> Search</button>
</div>
</div>
</div>
</div>
}
我的家庭控制器:
public class HomeController : BaseController
{
...
public HomeVm HomeVm { get; set; }
public HomeController()
{
HomeVm = new HomeVm();
HomeVm.OfferDateSearch = new OfferDateSearchVM();
}
public ActionResult Index(HomeVm homeSearchVm, int page = 1)
{
// ... here I'm loosing my From Date, when clicking on 2nd page link
if (homeSearchVm.OfferDateSearch != null)
{
HomeVm.OfferDateSearch.FromDate = homeSearchVm.OfferDateSearch.FromDate;
}
else
{
HomeVm.OfferDateSearch.FromDate = DateTime.Now;
}
//HomeVm.OfferList = OfferService.GetOfferList(page);
return View(HomeVm);
}
}
...和我的Home ViewModel类:
public class HomeVm
{
public HomeVm()
{
OfferListName = new OfferListVM();
}
public IPagedList<OfferListVM> OfferList { get; set; }
public OfferDateSearchVM OfferDateSearch { get; set; }
}
..以及日期vm:
public class OfferDateSearchVM
{
[Required]
[Display(Name = "From")]
public DateTime FromDate { get; set; }
}
非常感谢帮助!谢谢!