我编写了一段代码,它从赞助商列表中返回一个随机字符串赞助商名称。这个赞助商名称应该在每个页面上都可见,因此我在共享的 _layout 视图中调用了 RandomSponsor 方法。这个 RandomSponsor 方法基于 HomeController 并且有它自己的视图,只包含一个Html.Action
然后Html.Action
程序返回一个错误:
System.StackOverflowException {Cannot evaluate expression because the current thread is in a stack overflow state.}
这是我的 RandomSponsor 方法:
[HttpGet]
[ChildActionOnly]
public ActionResult RandomSponsor()
{
var model = service.getRandomSponsor();
return PartialView("RandomSponsor", model);
}
RandomSponsor.cshtml,程序停止的地方
@Html.Action("RandomSponsor")
而我在共享布局页面_Layout.cshtml中的调用:
@Html.Action("RandomSponsor", "Home")
在调试时,我注意到 RandomSponsor 方法进入了它的视图,但是因为我的 Html.Action 再次请求该函数,所以它陷入了循环。我想我在 RandomSponsor.cshtml 视图中给 Html.Action 提供了错误的参数,但我不知道什么是正确的。
有没有人有类似的问题或知道如何解决这个错误,我全神贯注。
问候