2

我正在使用带有 Razor 的 ASP.NET MVC 3。在我的一个页面上,我使用 WebGrid 来显示数据。如果 WebGrid 如下所示实例化,则一切正常。

var grid = new WebGrid( Model, defaultSort: "StartDate", rowsPerPage: 20 );

不幸的是,我希望页面提供最初在 StartDate 上按降序排序的内容,所以我使用了以下内容:

var grid = new WebGrid( Model.OrderByDescending( e => e.StartDate ), rowsPerPage: 20 );

这在我的机器上和当我将应用程序上传到主机(GoDaddy)时都可以正常工作。但是,当我单击列标题进行排序时,它在本地运行良好,但应用程序的远程版本中止并出现以下堆栈跟踪:

System.TypeAccessException: Attempt by method 'DynamicClass.lambda_method(System.Runtime.CompilerServices.Closure)' to access type 'System.Linq.OrderedEnumerable`2' failed.
   at lambda_method(Closure )
   at System.Linq.EnumerableQuery`1.GetEnumerator()
   at System.Linq.EnumerableQuery`1.System.Collections.Generic.IEnumerable.GetEnumerator()
   at System.Linq.Enumerable.d__4d`1.MoveNext()
   at System.Linq.Enumerable.d__3a`1.MoveNext()
   ...

在我的搜索中,我发现了一个看起来相似的参考。那里的答案假定它与中等信任有关,但它并不是真正确定的,也没有包括任何关于如何解决信任问题的建议。

我可以通过使该页面的每个链接如下所示来解决此问题,但如果可能的话,我宁愿不必这样做。

/Event/List?sort=StartDate&sortdir=DESC
4

0 回答 0