WebGrid在排序时抛出异常,但仅在托管提供程序上抛出异常

时间:2011-03-26 19:25:11

标签: exception asp.net-mvc-3 webgrid

我正在使用带有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

0 个答案:

没有答案