无法创建接口的实例。 IPagedList

时间:2017-10-18 14:43:04

标签: c# asp.net-mvc pagedlist

我正在尝试将分页添加到我的应用程序中的结果显示表中。我正在使用PagedList包来执行此操作。

首先,在我的模型中,我补充道:

public IPagedList<Object> PagedDisplayResults { get; set; } 

然后在控制器中,我加载列表的值:

 model.PagedDisplayResults = searchResults.ToPagedList(pageIndex, pageSize);

然后在我的视图中,我遍历model.PagedDisplayResults以显示我的结果。

在第一次加载/搜索/显示时,它可以无缝地工作,但是当我进行后续搜索或触发回发的其他事件时,我得到以下错误并且没有控制器命中。我究竟做错了什么?似乎无法找到48小时的修复计数......

  

无法创建接口的实例。   描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

     

异常详细信息:System.MissingMethodException:无法创建接口的实例。

     

来源错误:   在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。

     

堆栈追踪:

     

[MissingMethodException:无法创建接口的实例。]      System.RuntimeTypeHandle.CreateInstance(RuntimeType类型,Boolean publicOnly,Boolean noCheck,Boolean&amp; canBeCached,RuntimeMethodHandleInternal&amp; ctor,Boolean&amp; bNeedSecurityCheck)+0      System.RuntimeType.CreateInstanceSlow(Boolean publicOnly,Boolean skipCheckThis,Boolean fillCache,StackCrawlMark&amp; stackMark)+113      System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly,Boolean skipCheckThis,Boolean fillCache,StackCrawlMark&amp; stackMark)+206      System.Activator.CreateInstance(Type type,Boolean nonPublic)+83      System.Activator.CreateInstance(类型类型)+11      System.Web.Mvc.DefaultModelBinder.CreateModel(ControllerContext controllerContext,ModelBindingContext bindingContext,Type modelType)+460      System.Web.Mvc.DefaultModelBinder.BindComplexModel(ControllerContext controllerContext,ModelBindingContext bindingContext)+1136      System.Web.Mvc.DefaultModelBinder.BindModel(ControllerContext controllerContext,ModelBindingContext bindingContext)+634      System.Web.Mvc.DefaultModelBinder.GetPropertyValue(ControllerContext controllerContext,ModelBindingContext bindingContext,PropertyDescriptor propertyDescriptor,IModelBinder propertyBinder)+59      System.Web.Mvc.DefaultModelBinder.BindProperty(ControllerContext controllerContext,ModelBindingContext bindingContext,PropertyDescriptor propertyDescriptor)+653      System.Web.Mvc.DefaultModelBinder.BindProperties(ControllerContext controllerContext,ModelBindingContext bindingContext)+141      System.Web.Mvc.DefaultModelBinder.BindComplexElementalModel(ControllerContext controllerContext,ModelBindingContext bindingContext,Object model)+106      System.Web.Mvc.DefaultModelBinder.BindComplexModel(ControllerContext controllerContext,ModelBindingContext bindingContext)+2541      System.Web.Mvc.DefaultModelBinder.BindModel(ControllerContext controllerContext,ModelBindingContext bindingContext)+634      System.Web.Mvc.ControllerActionInvoker.GetParameterValue(ControllerContext controllerContext,ParameterDescriptor parameterDescriptor)+495      System.Web.Mvc.ControllerActionInvoker.GetParameterValues(ControllerContext controllerContext,ActionDescriptor actionDescriptor)+199      System.Web.Mvc.Async。&lt;&gt; c__DisplayClass25.b__1e(AsyncCallback asyncCallback,Object asyncState)+978      System.Web.Mvc.Async.WrappedAsyncResult 1.Begin(AsyncCallback callback, Object state, Int32 timeout) +161 System.Web.Mvc.Async.AsyncResultWrapper.Begin(AsyncCallback callback, Object state, BeginInvokeDelegate beginDelegate, EndInvokeDelegate 1 endDelegate,Object tag,Int32 timeout)+92      System.Web.Mvc.Async.AsyncResultWrapper.Begin(AsyncCallback callback,Object state,BeginInvokeDelegate beginDelegate,EndInvokeDelegate 1 endDelegate, Object tag) +53 System.Web.Mvc.Async.AsyncControllerActionInvoker.BeginInvokeAction(ControllerContext controllerContext, String actionName, AsyncCallback callback, Object state) +523 System.Web.Mvc.<>c__DisplayClass1d.<BeginExecuteCore>b__17(AsyncCallback asyncCallback, Object asyncState) +83 System.Web.Mvc.Async.WrappedAsyncResult 1.Begin(AsyncCallback callback,Object state,Int32 timeout)+161      System.Web.Mvc.Async.AsyncResultWrapper.Begin(AsyncCallback callback,Object state,BeginInvokeDelegate beginDelegate,EndInvokeDelegate 1 endDelegate, Object tag, Int32 timeout) +92 System.Web.Mvc.Async.AsyncResultWrapper.Begin(AsyncCallback callback, Object state, BeginInvokeDelegate beginDelegate, EndInvokeDelegate endDelegate, Object tag, Int32 timeout) +97 System.Web.Mvc.Async.AsyncResultWrapper.Begin(AsyncCallback callback, Object state, BeginInvokeDelegate beginDelegate, EndInvokeDelegate endDelegate, Object tag) +53 System.Web.Mvc.Controller.BeginExecuteCore(AsyncCallback callback, Object state) +501 System.Web.Mvc.Async.WrappedAsyncResult 1.Begin(AsyncCallback callback,Object state,Int32 timeout)+161      System.Web.Mvc.Async.AsyncResultWrapper.Begin(AsyncCallback callback,Object state,BeginInvokeDelegate beginDelegate,EndInvokeDelegate 1 endDelegate, Object tag, Int32 timeout) +92 System.Web.Mvc.Async.AsyncResultWrapper.Begin(AsyncCallback callback, Object state, BeginInvokeDelegate beginDelegate, EndInvokeDelegate endDelegate, Object tag, Int32 timeout) +97 System.Web.Mvc.Async.AsyncResultWrapper.Begin(AsyncCallback callback, Object state, BeginInvokeDelegate beginDelegate, EndInvokeDelegate endDelegate, Object tag) +53 System.Web.Mvc.Controller.BeginExecute(RequestContext requestContext, AsyncCallback callback, Object state) +417 System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.BeginExecute(RequestContext requestContext, AsyncCallback callback, Object state) +49 System.Web.Mvc.<>c__DisplayClass8.<BeginProcessRequest>b__2(AsyncCallback asyncCallback, Object asyncState) +127 System.Web.Mvc.Async.WrappedAsyncResult 1.Begin(AsyncCallback callback,Object state,Int32 timeout)+161      System.Web.Mvc.Async.AsyncResultWrapper.Begin(AsyncCallback callback,Object state,BeginInvokeDelegate beginDelegate,EndInvokeDelegate`1 endDelegate,Object tag,Int32 timeout)+92      System.Web.Mvc.Async.AsyncResultWrapper.Begin(AsyncCallback callback,Object state,BeginInvokeDelegate beginDelegate,EndInvokeDelegate endDelegate,Object tag,Int32 timeout)+97      System.Web.Mvc.Async.AsyncResultWrapper.Begin(AsyncCallback callback,Object state,BeginInvokeDelegate beginDelegate,EndInvokeDelegate endDelegate,Object tag)+53      System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext,AsyncCallback回调,对象状态)+373      System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext,AsyncCallback回调,对象状态)+88      System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context,AsyncCallback cb,Object extraData)+50      System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+103      System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean&amp; completedSynchronously)+155

1 个答案:

答案 0 :(得分:1)

您应该有一个实现IPagedList的类,然后您可以创建该类的实例,但是您无法在接口上直接创建实例

public class MyClass:IPagedList<Object> {
// implement interface methods and properties
}

public IPagedList<Object> MyMethod(){
  return new MyClass();
}