0

コントローラから値を渡しました

public ActionResult Index(int? Page, string sortcol="ID", string sortorder="ASC", string firstname = "", string lastname = "", string emailaddress = "")
{
     int TotalPages = 0;

        var userlist = ur.GetUsersList(firstname, lastname, emailaddress, Page ?? 1, PageSize,out TotalPages, sortcol, sortorder);

        ViewBag.PageIndex = 1;

        ViewData["TotalPages"] = TotalPages.ToString();

        if (Request.IsAjaxRequest())
        {
            return PartialView("ListUsers", userlist);
        }
        return View(userlist);
    }

そして私の親の見解では:

@Html.Partial("ListUsers", Model, ViewData)

そして私の子ビュー(listusers)では:

@ViewData["TotalPages"]

Viewdatatotalpagesの値を取得できません。なんでそうなの?常にゼロを返します。

4

1 に答える 1

2

その場合、ビューデータを使用しないでください。viewModelを作成する必要があります。

var model = new UsersViewModel
{
    Users = userList;
    TotalPages =TotalPages.ToString();
}

そして最後に:

return View(model);

モデルクラス:

public class UsersViewModel
{
    public IEnumerable<User> Users{ get; set; }
    public int TotalPages{ get; set; }
}

それははるかにエレガントなソリューションです。

于 2012-10-22T11:33:38.017 に答える