首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC Contrib VerificationException

MVC Contrib VerificationException
EN

Stack Overflow用户
提问于 2010-02-20 02:23:03
回答 1查看 1.8K关注 0票数 10

我已经阅读了这个post,并且我想使用ControllerExtensions.RedirectToAction方法。但是我有System.Security.VerificationException,它说:类型参数'MyController type‘违反了类型参数'T’的约束。

我的控制器声明如下:

代码语言:javascript
复制
   public class ProductsSearchController : Controller
   {
        ...
   }

请帮帮我。此外,我还尝试从here下载最新的MvcContrib库。这对我没什么帮助。

我注意到一个有趣的事实。只有在从单元测试中调用时才会出现此异常。但在使用from网站时也不例外。然而,它似乎不能正常工作。当我将一个对象传递给表达式中的action时,如下所示:

代码语言:javascript
复制
this.RedirectToAction(x => x.Index(filter))

它只是调用这个对象的.ToString!我得到的url如下:

ProductsSearch?filter=WebShop.FinderModel.Filters.ProductsFilter

怎么啦?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-29 16:35:24

我一直都有这个问题。

我在使用System.Web.Mvc版本4.0.30319的同时使用了MvcContrib版本2.0.95.0。

问题是MvcContrib引用了较早版本的System.Web.Mvc。

如果您在MVC2中使用的是旧版本的MvcContrib,那么下载并引用最新版本的MvcContrib应该就足够了。如果你使用的是MVC4和.NET 3,你需要用下面的代码更新你的单元测试项目的App.Config文件(你可能需要添加一个):

代码语言:javascript
复制
<configuration>
...

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

....
</configuration>

请记住,如果使用的是不同版本的MVC,则可能需要更改版本号。(例如,在进行此编辑时,您需要使用oldVersion="1.0.0.0-5.1.0.0"newVersion="5.2.0.0")。

您可能还需要将其添加到您的web项目中。如果您只在测试项目中获得异常,则此部分很可能已经存在,并且在web.config中是正确的;您可以从那里复制并粘贴它。

如果你使用的是代码分析,你还需要看到Assembly Binding Redirection and Code Analysis,这样它才能遵守绑定重定向。

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2298625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档