-1

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>
4

1 に答える 1

0

先月初めて MVCCONTRIB グリッドを試したときに、同様の問題が発生しました。Ipagination の結果を別の変数に代入し、それを View として返すことで修正しました。

このようなもの -

var temp = userList.AsPagination(page ?? 1, 5);
return View( temp);
于 2013-01-25T09:53:52.773 に答える