我有一个名为 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/