Оказывается, что проект, содержащий класс PermanentRedirectResult
, все еще ссылается на сборку ASP.NET MVC 1.0, хотя веб-сайт был обновлен до версии 2.0. Фреймворк проверяет возвращаемое значение метода действия, чтобы определить, является ли это ActionResult
или чем-то еще, что должно быть заключено в ContentResult
, как это ...
return ((actionReturnValue as ActionResult) ??
new ContentResult {
Content = Convert.ToString(actionReturnValue, CultureInfo.InvariantCulture)
});
... и (actionReturnValue as ActionResult)
равно нулю, потому что мой PermanentRedirectResult
расширяет неправильный ActionResult
, тот, что в сборке 1.0, а не в сборке 2.0.
Обновление ссылки таким образом, чтобы PermanentRedirectResult
был 2.0 ActionResult, устранил проблему.