gpt4 book ai didi

c# - PagedList.Mvc 在 MvcHtmlString 上抛出异常

转载 作者:太空宇宙 更新时间:2023-11-03 23:36:34 24 4
gpt4 key购买 nike

我正在尝试使用出色的 PagedList.Mvc Visual Studio 2015 RC 中的分页库,但从我的角度来看我得到了这个异常:

The type 'MvcHtmlString' is defined in an assembly that is not referenced. You must add a reference to assembly '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>

}
}

这是它的 Controller :

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' does not contain a constructor that takes 1 arguments web.app.DNX 4.5.1 ...\src\web.app\compiler\preprocess\RazorPreCompilation.cs 8

'IServiceCollection' does not contain a definition for 'AddMvc' and no extension method 'AddMvc' accepting a first argument of type 'IServiceCollection' could be found (are you missing a using directive or an assembly reference?) web.app.DNX 4.5.1 ...\src\web.app\Startup.cs 69

'IApplicationBuilder' does not contain a definition for 'UseMvc' and no extension method 'UseMvc' accepting a first argument of type 'IApplicationBuilder' could be found (are you missing a using directive or an assembly reference?) web.app.DNX 4.5.1 ...\src\web.app\Startup.cs 113

'IHtmlHelper>' does not contain a definition for 'PagedListPager' and the best extension method overload 'HtmlHelper.PagedListPager(HtmlHelper, IPagedList, Func)' requires a receiver of type 'HtmlHelper' web.app.DNX 4.5.1 ...\src\web.app\Views\Shared_RssFeedPartial.cshtml 23

最佳答案

确保您在根 web.config 文件中配置了正确的程序集重定向。看起来这个程序集正在寻找 MVC 版本 4专门。为了添加程序集重定向,打开您的 web.config 文件并添加以下信息(假设使用最新的 MVC 生产版本):

<runtime>
<assemblyBinding>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>

这将导致对任何版本的 System.Web.Mvc 程序集的任何请求都是对已安装版本的调用。如果您没有安装 MVC,请使用 Nuget 安装包和所有相关依赖项。

请注意,您的 web.config 中可能已经有此部分,如果是这样,只需添加或更新当前的 System.Web.Mvc 绑定(bind)重定向即可。

关于c# - PagedList.Mvc 在 MvcHtmlString 上抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30376977/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com