スポンサーのリストからランダムな文字列のスポンサー名を返すコードを書きました。このスポンサー名は各ページに表示される必要があるため、共有の _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 に間違ったパラメーターを指定したと思いますが、何が正しいのかわかりません。
誰かが同様の問題を抱えていたか、このエラーを修正する方法を知っていますか?私はすべて耳にしています。
よろしく