IControllerFactory ...没有为名称'Rss'返回控制器

时间:2011-12-11 02:23:06

标签: asp.net asp.net-mvc-2

我有一个名为RssController的控制器,它就是这样的

public partial class RssController : MVCExceptionBaseController
{

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

当我点击导航中的“登录”链接时,我收到以下消息:

  

IControllerFactory   'GodsCreationTaxidermy.Helpers.StructureMapControllerFactory'没有   返回一个名为'Rss'的控制器。

从Site.Mater调用RSS,如下所示:

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

显示是一个部分类,用于显示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>

我点击的任何其他链接工作正常,除了登录(LogIn在它自己​​的区域,这可能导致问题,如果是这样,我将如何解决它?)

1 个答案:

答案 0 :(得分:7)

默认情况下,Html.RenderAction方法不会搜索当前区域之外的控制器。为了让LogIn区域内的控制器找到Rss控制器,您需要使用RenderAction方法的一个重载:

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

“空字符串”区域是任何不属于某个区域的控制器的容器。