我有一个显示类别列表的页面,还有一个搜索框来搜索类别。类别列表使用分页。
@model PagedList.IPagedList<MvcWebsite.Models.User.ListOfCategories>
@using PagedList.Mvc;
foreach (var item in Model)
{
....
}
namespace MvcWebsite.Models.User
{
public class ListOfCategories
{
public int lngCatId { get; set; }
public Byte intStatus { get; set; }
public string txtTitle { get; set; }
public ListOfCategories()
{
intStatus = 1;
}
}
public class SearchBox
{
public string txtSearch { get; set; }
}
public class UserViewModel
{
public ListOfCategories ListOfCategories { get; set; }
public SearchBox SearchBox { get; set; }
}
}
在我看来,如果我将MvcWebsite.Models.User.CategoriesList更改为MvcWebsite.Models.User.UserViewModel,我会收到错误消息。
我需要做什么才能使分页和搜索框都在页面中工作?
答案 0 :(得分:0)
即使您的初步版本(使用ListOfCategories
作为视图模型),您的代码也会出现一些问题。
ListOfCategories
,而此类未实现IEnumerable
接口ListOfCategories
,但实际上您的类代表一个Category
。MvcWebsite.Models.User.UserViewModel
,但不要更改视图代码。 Status
,最好使用枚举类型使其可读。 总而言之,您的所有代码应该如下所示:
public enum StatusType
{
BasicStatus = 1,
OtherStatus = 2,
YetAnotherStatus = 3
}
public class Category
{
public int CategoryId { get; set; }
public StatusType Status { get; set; }
public string Title { get; set; }
public Category()
{
Status = StatusType.BasicStatus;
}
}
public class SearchBox
{
public string SearchText { get; set; }
}
public class UserViewModel
{
public List<Category> Categories { get; set; }
public SearchBox SearchBox { get; set; }
}
您的观点:
@model PagedList.IPagedList<MvcWebsite.Models.User.UserViewModel>
@using PagedList.Mvc;
foreach (var item in Model.Categories)
{
....
}
当然,您应该更改视图代码中的@model
以符合更改:
@model MvcWebsite.Models.User.UserViewModel