【发布时间】:2015-08-03 07:29:51
【问题描述】:
我正在尝试在 Visual Studio 2015 RC 中使用出色的 PagedList.Mvc 分页库,但在我看来却遇到了这个异常:
“MvcHtmlString”类型是在未引用的程序集中定义的。您必须添加对程序集“System.Web.Mvc,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”的引用。 web.app.DNX 4.5.1
我已尝试添加 System.Web.Mvc 引用,但它在引用下不可用。
这是我抛出错误的观点:
@using PagedList.Mvc; //import this so we get our HTML Helper
@using PagedList; //import this so we can cast our list to IPagedList (only necessary because ViewBag is dynamic)
@using web.app.Models;
@model StaticPagedList<Entry>
@{
if (Model.Count > 0)
{
@foreach (Entry entry in Model)
{
<h3>@entry.Title</h3>
<h4>@entry.PublishDate</h4>
<div>@Html.Raw(@entry.content.text)</div>
<hr>
}
<!-- output a paging control that lets the user navigation to the previous page, next page, etc -->
@Html.PagedListPager(@Model, page => Url.Action("~/Views/Shared/_RssFeedPartial", new { page }))
}
else
{
<p>There are no blog items to be displayed at this time.</p>
}
}
这是它的控制器:
public async Task<ActionResult> Index(int? page)
{
var pageIndex = (page ?? 1) - 1;
var pageSize = 2;
int totalPostCount;
var feedItems = await RssManager.GetFeedItems("http://example.com/blogs/news", pageIndex, pageSize);
totalPostCount = feedItems.Count;
var postsAsIPagedList = new StaticPagedList<Entry>(feedItems, pageIndex+1, pageSize, totalPostCount);
ViewBag.OnePageOfPosts = postsAsIPagedList;
return View();
}
更新 1:需要注意的一点——父页面以这种方式在 ViewBag 列表中发送:
@Html.Partial("~/Views/Shared/_RssFeedPartial", (IPagedList)ViewBag.OnePageOfPosts
更新 2:在进行了 @Tommy 和 @Aegis 建议的更改后,现在出现以下错误:
'RazorPreCompileModule' 不包含带有 1 个参数的构造函数 web.app.DNX 4.5.1 ...\src\web.app\compiler\preprocess\RazorPreCompilation.cs 8
“IServiceCollection”不包含“AddMvc”的定义,并且找不到接受“IServiceCollection”类型的第一个参数的扩展方法“AddMvc”(您是否缺少 using 指令或程序集引用?) web.app .DNX 4.5.1 ...\src\web.app\Startup.cs 69
“IApplicationBuilder”不包含“UseMvc”的定义,并且找不到接受“IApplicationBuilder”类型的第一个参数的扩展方法“UseMvc”(您是否缺少 using 指令或程序集引用?) web.app .DNX 4.5.1 ...\src\web.app\Startup.cs 113
“IHtmlHelper>”不包含“PagedListPager”的定义,并且最佳扩展方法重载“HtmlHelper.PagedListPager(HtmlHelper, IPagedList, Func)”需要“HtmlHelper”类型的接收器 web.app.DNX 4.5.1 ...\src\web.app\Views\Shared_RssFeedPartial.cshtml 23
【问题讨论】:
-
您是否尝试过通过 NuGet 下载 Microsoft ASP.NET MVC 包?我相信这是添加缺失库的最简单方法。
-
谢谢,@Aegis。哪个版本?
-
如果您不确定哪个版本,我会下载最新的。
-
@Aegis:我会得到预发布版本:nuget.org/packages/Microsoft.AspNet.Mvc/6.0.0-beta4
-
除非您在 ASP vNext 上运行,否则我不会获得预发布版本。此外,除非您只是进行测试,否则您可能不应该使用任何预发布版本。我相信当前完整的生产 MVC 版本是 5.2.3
标签: c# asp.net-mvc asp.net-mvc-4 pagination