MVC CONPIB VERITICATIONEXCEPTION
-
21-09-2019 - |
Вопрос
Я прочитал это почта и я хотел использовать метод 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; Вы можете скопировать и вставить его оттуда.
Если вы используете анализ кода, вам также нужно увидеть Перенаправление и анализ кода сборки и анализ кода Для того, чтобы он уважал перенаправление привязки.