将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程序集中的所有方法默认情况下变为透明,这可能是导致此异常的原因。
答案 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")
)
然后它像以前一样工作。没有错误。