外部から来る条件に応じて、PartialViewまたはViewのいずれかからレンダリングしようとしています。 WebサイトがStackOverflowExceptionでデータをポストすると失敗します。コントローラからの部分ビューまたはビューのレンダリング
コントローラコード:
public ActionResult Login(bool partial = false)
{
if (partial)
{
ViewBag.Partial = true;
return PartialView();
}
return View();
}
[HttpPost]
public ActionResult Login(UserViewModel userViewModel)
{
if (!ModelState.IsValid)
return View(userViewModel);
// some authrorization staff
}
Login.cshtml:
@using SK.DDP.ImageGallery.Helpers
@model SK.DDP.ViewModels.UserViewModel
@{
ViewBag.Title = "Login";
if (ViewBag.Partial != null)
{
Layout = string.Empty;
}
}
@*Some form staff*@
AuthorizationInfo.cshtml:
@{
Layout = string.Empty;
}
@{ Html.RenderAction("Login", "Authorization"); }
テンプレート:
@*Some dif for form requested by menu*@
@{ Html.RenderAction("AuthorizationInfo", "Authorization"); }
ユーザーがメニューをクリックしたときにログインページとログインポップアップウィンドウが表示されるWebサイトがあるので、コントローラとコードの同じアクションを再利用したかったので、アプリケーションはstackoverflow例外で失敗し続けます。
ありがとうございました。
「AuthorizationInfo.cshtml」とテンプレートは質問にどのように関連していますか?ビュー内に 'if(ViewBag.Partial!= null)'は必要ありません(レイアウトを使用しないPartialViewを返した場合) –
返されたactionresultがあった場合、Layout = string.Emptyを設定する必要はありません部分的に、これを確認できますか? – Monah
スタックオーバーフロー例外?いくつかの再帰呼び出しを探します。それを自分のことと呼んでいる行動方法かもしれない? – Shyju