Asp.net mvc 2 Html.RenderAction-路径'/';找不到

Asp.net mvc 2 Html.RenderAction-路径'/';找不到,asp.net-mvc-2,Asp.net Mvc 2,在我的母版页中使用ASP.NET MVC 2和Html.RenderAction(按以下方式实现)会引发一个错误:“未找到路径“/”的控制器”: 我是个新手,我需要在RegisterRoutes做些什么才能让这一切顺利进行吗 <% Html.RenderAction("TeaserList", "SportEventController"); %> public class SportEventController : Controller { public string

在我的母版页中使用ASP.NET MVC 2和Html.RenderAction(按以下方式实现)会引发一个错误:“未找到路径“/”的控制器”:

我是个新手,我需要在RegisterRoutes做些什么才能让这一切顺利进行吗

<% Html.RenderAction("TeaserList", "SportEventController"); %>

public class SportEventController : Controller
{
    public string TeaserList()
    {
        return "hi from teaserlist";
    }
}

公共类SportEventController:控制器
{
公共字符串列表()
{
返回“Hifromtasterlist”;
}
}

为了使其正常工作,
TeaserList()
必须是一个返回
操作结果的方法,如:

`
public virtual ActionResult TeaserList()
    {
        return View();
    }
`

如果您想要“HifromStraterlist”,那么您可以在名为Straterlist的视图中使用它,或者您可以添加

`ViewData["teaserList"] = "hi from teaserlist";`

并将其呈现在您的视图中。

我不确定,但我猜以下情况是错误的:

  • 您的TriserList方法应该返回一个
  • 对RenderAction的调用应该是
    RenderAction(“TriserList”、“SportEvent”)
    ,不带控制器后缀

我将爬回我的shell,它是“控制器”后缀,谢谢Martin…顺便说一句:它不必返回ActionResult,返回字符串就可以了…试试看!返回用户字符串时请注意安全问题!(看起来不像是这样,但必须提到……)它不必返回ActionResult,返回字符串就可以了……试试看!虽然这是真的(本质上,您的控制器将所有公共方法都转换为操作),但我相信其精神是返回ActionResults,这样(例如,对于测试),您就可以返回任何子类型。因此,在您的情况下,可以返回ContentResult。