IControllerFactory ... не вернул контроллер для имени 'Rss' - PullRequest
4 голосов
/ 11 декабря 2011

У меня есть контроллер с именем RssController, который выглядит примерно так

public partial class RssController : MVCExceptionBaseController
{

    public virtual ActionResult Display()
    {
        var viewModel = new RssList();
        return PartialView("Display", viewModel);
    }
}

Когда я нажимаю на ссылку Войти в моей навигации, я получаю следующее сообщение:

IControllerFactory «GodsCreationTaxidermy.Helpers.StructureMapControllerFactory» не выполнен вернуть контроллер для имени 'Rss'.

RSS вызывается с Site.Mater примерно так:

<% Html.RenderAction("Display", "Rss");%>

Display - это частичный класс, который используется для отображения канала Rss, и он выглядит следующим образом:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<ul>
<%  
    RssList viewModel = ViewData.Model as RssList;

    if (viewModel.Feeds.Count() > 0)
    {
        foreach (SelectListItem item in viewModel.Feeds)
        { %>
        <li>
            <%
              Response.Write(String.Format("<a href='{0}' target='_blank'>{1}  More</a>", item.Value, item.Text.TruncateString(30)));
            }%>
        </li>
    <% }%>
 </ul>

Любые другие ссылки, по которым я щелкаю, работают нормально, кроме входа в систему (вход в систему находится в его собственной области, может ли это быть причиной проблемы, если да, то как бы я решил ее?)

1 Ответ

7 голосов
/ 12 декабря 2011

По умолчанию метод Html.RenderAction не выполняет поиск контроллеров за пределами текущей области.Чтобы контроллер внутри области входа в систему мог найти контроллер Rss, необходимо использовать одну из перегрузок метода RenderAction:

<% Html.RenderAction("Display", "Rss", new { area = "" }); %>

Область «пустая строка» является контейнером для любого контроллера, которыйне является частью области.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...