Webdiyer.WebControls.Mvc.PagerHelper.AjaxPager无法访问安全关键类型'System.Web.Mvc.MvcHtmlString'

时间:2015-06-17 09:13:24

标签: model-view-controller

将MVC更新到版本5.2.2.0后显示此错误。

错误:

尝试安全透明方法

  

Webdiyer.WebControls.Mvc.PagerHelper.AjaxPager(System.Web.Mvc.HtmlHelper,Webdiyer.WebControls.Mvc.IPagedList,Webdiyer.WebControls.Mvc.PagerOptions,System.Web.Mvc.Ajax.AjaxOptions,System.Object ''访问安全关键类型'System.Web.Mvc.MvcHtmlString'失败。

     

程序集'MvcPager,Version = 1.5.0.28157,Culture = neutral,PublicKeyToken = null'标有AllowPartiallyTrustedCallersAttribute,并使用2级安全透明模型。 2级透明度导致AllowPartiallyTrustedCallers程序集中的所有方法默认情况下变为透明,这可能是导致此异常的原因。

2 个答案:

答案 0 :(得分:0)

当我将项目更新为MVC 5时,我遇到了同样的问题。 我从我的项目中删除了现有的MvcPager(Uninsatll /手动删除)。 我已经从here安装了最新的MvcPager到我的项目。

Pager语法略有变化,您可以获取源代码here

更改后,它对我来说很好。

答案 1 :(得分:0)

将我们的项目更新为MVC 5后,我们遇到了同样的问题。 从所有相关项目中删除MvcPager参考。在NuGet包管理器中添加Webdiyer.MvcPager版本3.0.1.1。

在cshtml中,我们有

@Html.AjaxPager(
                    Model,
                    new PagerOptions()
                    {
                        PageIndexParameterName = "id",
                        ShowDisabledPagerItems = false,
                        AlwaysShowFirstLastPageNumber = true,
                        ShowPageIndexBox = false,
                        AutoHide=true,
                        NumericPagerItemCount = 5,
                        ShowFirstLast=false,
                        ShowPrevNext =false
                    },
                    new AjaxOptions
                    {
                        UpdateTargetId = "majorRow"
                    })

我把它改成了

 @Ajax.Pager(
                    Model,
                    new PagerOptions()
                    {
                        PageIndexParameterName = "id",
                        ShowDisabledPagerItems = false,
                        AlwaysShowFirstLastPageNumber = true,
                        //ShowPageIndexBox = false,
                        AutoHide = true,
                        NumericPagerItemCount = 5,
                        ShowFirstLast = false,
                        ShowPrevNext = false
                    }).AjaxOptions(
                       a => a.SetUpdateTargetId("majorRow")
                    )

然后它像以前一样工作。没有错误。