MVCContrib を使用しているときに問題が発生したようです。MVC4 を使用して Web サイトを構築していて、すべてのユーザーを表示するデータグリッドを表示したい 私のデータ モデルは ADO.NET Entity Data Model によって構築されていますが、MVC4 で簡単に使用できるように変更します。ページング機能を実装しようとすると、次のエラーがスローされます。 on: @Html.Grid(Model).Sort(ViewBag.SortModel as GridSortOptions).Columns(column =>
この問題を解決する方法がわかりません。この場合、並べ替えだけを使用していれば問題ありません。この問題は、Web サイトにページング機能を追加した場合にのみ発生します (PS: ページングのみを使用しようとしましたが、それでも同じエラーが発生します)。
私を助けてください :)
コントローラーで:
public ActionResult Index(int? page, GridSortOptions SortModel)
{
userRsy = new UserRepository();
if (CookieUserName == "")
{
return RedirectToAction("Index", "Home");
}
else
{
DBEntities _db = new DBEntities();
//ViewData.Model = _db.Users;
ViewBag.SortModel = SortModel;
IEnumerable<User> userList = _db.Users;
if (!string.IsNullOrEmpty(SortModel.Column))
{
userList = userList.OrderBy(SortModel.Column, SortModel.Direction);
//userList = userList.OrderBy(u => u.UserName);
}
//find login user
var _user = userRsy.Find(CookieUserName);
//ViewBag.Title = _user.FirstName + ", Welcom to E-Tabs Dashboard Management Center";
//Check user admin level
ViewBag.User = _user.FirstName;
ViewBag.Account = _user.UserName;
ViewBag.IsAdmin = false;
if (userRsy.AdminCheck(_user.UserName) == 99)
{ ViewBag.IsAdmin = true; }
//Pagination
userList = userList.AsPagination(page ??1,5);
//show view
return View(userList);
}
}
cshtml ファイルで:
@model IPagination<E_Tabs_Generic_Portal.Models.User>
@using MvcContrib.UI.Grid;
@using MvcContrib.Pagination;
@using MvcContrib.UI.Pager;
@using MvcContrib.Sorting;
@{
ViewBag.Title = "User";
Layout = "~/Views/Shared/_HomeLayout.cshtml";
}
<div class="content-1">
<h2>User List</h2>
@Html.Grid(Model).Sort(ViewBag.SortModel as GridSortOptions).Columns(column =>
{
column.For(p => p.UserName).Named("User Name");
column.For(p => p.IsEnabled).Named("Enabled");
column.For(p => p.FirstName).Named("First Name");
column.For(p => p.LastName).Named("Last Name");
column.For(p => p.Email).Named("E-Mail");
column.For(p => p.Company).Named("Company");
column.For(p => p.ServerName).Named("On Server #");
column.For(p => p.LastLoginTime).Named("Last Login").Format("{0:yyyy/MM/dd HH:mm}");
}
).Attributes( @class=>"Grid",@width =>"100%", @border =>"1", @style =>"text-align:center;border-collapse:collapse")
@Html.Pager(Model).First("First").Next(">>").Previous("<<").Last("Last").Format("Total{2}, Current{0}-{1} ")
</div>