asp.net - IControllerFactory ...没有返回名称为 'Rss' 的 Controller

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

我有一个名为 RssController 的 Controller ,看起来像这样

public partial class RssController : MVCExceptionBaseController
{

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

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

The IControllerFactory 'GodsCreationTaxidermy.Helpers.StructureMapControllerFactory' did not return a controller for the name 'Rss'.

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

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

Display 是一个用于显示 Rss feed 的分部类,它看起来像这样:

<%@ 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>

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

最佳答案

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

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

“空字符串”区域是任何不属于区域的 Controller 的容器。

关于asp.net - IControllerFactory ...没有返回名称为 'Rss' 的 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8461503/

相关文章:

asp.net - ConfigurationManager.AppSettings 缓存

asp.net - silverlight 错误 - 相对 uri 不支持该操作

c# - stringbuilder 与字符串连接

c# - XSLT 与 ASP.NET MVC 框架

c# - ASP.NET MVC3 向下钻取复选框列表

c# - JS 中 C# var 的 asp.net 值

javascript - 我需要在 ASP.NET 中编写动态报表生成器代码,应该从哪里开始?

ASP.NET MVC 经验/成功案例 [2010]

asp.net-mvc-2 - 未生成区域中的 T4MVC MVC2 View

c# - 不明确的调用 asp.net mvc 操作方法