【发布时间】:2019-02-07 23:01:00
【问题描述】:
我正在尝试在我的代码中使用Grid.MVC。这个例子看起来很简单,但是当我尝试使用它时,我不断收到ArrayTypeMismatchException。
这是我的代码。关于如何解决它的任何想法?
//This is the my cshtml code.
@Html.Grid(Model).Columns(columns =>
{
columns.Add(c => c.Name).Titled("Name");
columns.Add(c => c.Operation).Titled("Operation").Filterable(true);
}).WithPaging(3).Sortable(true)
//This is my controller code.
public ActionResult ListAllAuthorization()
{
IList<AuthorizationWrapper> authorizations;
using (GenericRepositoryV2 repo = new GenericRepositoryV2())
{
authorizations = repo.GetAllAuthorization();
}
return View(authorizations);
}
如果有什么不同,我的配置:
- MVC 5
- .Net 框架 4.5
更新 1: 堆栈跟踪:
at System.Collections.Generic.List`1.set_Item(Int32 index, T value)
at System.Collections.ObjectModel.Collection`1.SetItem(Int32 index, T item)
at System.Web.Routing.RouteCollection.SetItem(Int32 index, RouteBase item)
at System.Collections.ObjectModel.Collection`1.set_Item(Int32 index, T value)
at System.Web.Mvc.ControllerContext.get_RequestContext()
at GridMvc.Html.GridHtmlOptions`1.RenderPartialViewToString(String viewName, Object model, ViewContext viewContext)
at GridMvc.Html.GridHtmlOptions`1.ToHtmlString()
at System.Web.HttpUtility.HtmlEncode(Object value)
at System.Web.WebPages.WebPageExecutingBase.WriteTo(TextWriter writer, Object content)
at System.Web.WebPages.WebPageBase.Write(Object value)
at ASP._Page_Views_Admin_ListAllAuthorization_cshtml.Execute() in e:\Oman-Erp\OmanERP\Views\Admin\ListAllAuthorization.cshtml:line 28
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
at System.Web.WebPages.StartPage.RunPage()
at System.Web.WebPages.StartPage.ExecutePageHierarchy()
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
at System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance)
at System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer)
at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
【问题讨论】:
-
请显示完整的堆栈跟踪。我们不知道哪个部分实际上是失败的。
-
@Manpreet Singh,
repo.GetAllAuthorization()有什么作用?你能发布异常的代码和完整的堆栈跟踪吗? -
@RePierre
GetAllAuthorization()返回一个IList<AuthorizationWrapper> -
@JonSkeet 添加了堆栈跟踪。自己无法从中收集到任何可操作的信息。
-
除此之外,它似乎在
ControllerContext.RequestContextgetter 中,我不希望它与您显示的代码有任何关系。绝对值得拥有 - 虽然我自己知道的还不够多。
标签: c# asp.net-mvc-5