部分ビューのASP.NET MVCカスタムタイプリスト
-
06-07-2019 - |
質問
PaginatedListを取得するビューがあります(Nerd Dinnerサンプルのように)。ページは意図したとおりに機能します。同じPaginatedListを取得する部分ビューを追加し、最初のビュー内でRnederPartialを呼び出します。 ASP.NETは、解決できないように見える例外をスローします。
PaginatedListコード:
public class PaginatedList<T> : List<T>
{
public int PageIndex { get; private set; }
public int PageSize { get; private set; }
public int TotalCount { get; private set; }
public int TotalPages { get; private set; }
public PaginatedList(IQueryable<T> source, int pageIndex, int pageSize)
{
PageIndex = pageIndex;
PageSize = pageSize;
TotalCount = source.Count();
TotalPages = (int)Math.Ceiling(TotalCount / (double)PageSize);
this.AddRange(source.Skip(PageIndex * PageSize).Take(PageSize));
}
public bool HasPreviousPage
{
get
{
return (PageIndex > 0);
}
}
public bool HasNextPage
{
get
{
return (PageIndex + 1 < TotalPages);
}
}
}
コントローラー:
[Authorize]
public ActionResult Index(int? page)
{
const int pageSize = 10;
var workstations = itilRepository.FindAllWorkstations();
var paginatedWorkstations = new PaginatedList<Workstation>(workstations, page ?? 0, pageSize);
return View("Index", paginatedWorkstations);
}
インデックスビューの上部:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<ITILDatabase.Helpers.PaginatedList<ITILDatabase.Models.Workstation>>" %>
次のように、インデックスビューで部分ビューを呼び出します。
<% Html.RenderPartial("Workstations", Model); %>
ワークステーションの上部の部分ビュー:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewPage<ITILDatabase.Helpers.PaginatedList<ITILDatabase.Models.Workstation>>" %>
受け取ったエラー:
c:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \ root \ d2889d23 \ c6192b3e \ App_Web_workstations.ascx.a8d08dba.tgrd74s0.0.cs(156):エラーCS0030:変換できません「ASP.views_home_workstations_ascx」を「System.Web.Mvc.ViewUserControl」に入力します
このエラーが発生する理由を誰かが知っていれば、大いに感謝します。
ありがとう!
解決
ワークステーションのパーシャルビューの上部は次のようになります。
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ITILDatabase.Helpers.PaginatedList<ITILDatabase.Models.Workstation>>" %>
ViewPageをViewUserControlに変更
所属していません StackOverflow