我正在尝试将分页添加到我的应用程序中的结果显示表中。我正在使用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,EndInvokeDelegate1 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,EndInvokeDelegate1 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,EndInvokeDelegate1 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
答案 0 :(得分:1)
您应该有一个实现IPagedList的类,然后您可以创建该类的实例,但是您无法在接口上直接创建实例
public class MyClass:IPagedList<Object> {
// implement interface methods and properties
}
public IPagedList<Object> MyMethod(){
return new MyClass();
}