Вопрос

Я прочитал это почта и я хотел использовать метод ControlerExtensions.RecteCtToAction. Но у меня есть System.security.VerificationException, который говорит: тип аргумента '[myController] «нарушает ограничение параметра типа' t '.

Мой контроллер объявлен следующим образом:

   public class ProductsSearchController : Controller
   {
        ...
   }

Помоги мне, пожалуйста. Также я попытался скачать последнюю библиотеку MVCContrib с здесь. Анкет Это мне не помогло.

Я заметил интересный факт. У меня есть это исключение только при вызове из модульных тестов. Но нет исключения при использовании с веб -сайта. Однако, кажется, это не работает правильно. Когда я передаю объект в действие в выражении, как это:

this.RedirectToAction(x => x.Index(filter))

Это просто звонит .toString этого объекта! И я получаю URL так:

ProductsSearch? Filter = webshop.findermodel.filters.productsFilter

Что случилось?

Это было полезно?

Решение

У меня была эта проблема.

Я использовал MVCContrib версию 2.0.95.0 вместе с System.Web.mvc версии 4.0.30319.

Проблема заключалась в том, что MVCContrib ссылается на более раннюю версию System.Web.mvc.

Если вы используете более старую версию MVCContrib с MVC 2, это должно быть достаточно для загрузки и ссылки на последнюю версию MVCContrib. Если вы используете .net 4 и MVC 3, вам нужно обновить файл app.config для вашего проекта для тестирования модуля (вам, возможно, придется добавить его) со следующим:-

<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.config; Вы можете скопировать и вставить его оттуда.

Если вы используете анализ кода, вам также нужно увидеть Перенаправление и анализ кода сборки и анализ кода Для того, чтобы он уважал перенаправление привязки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top