как игнорировать @RenderBody () внутри условия if - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть страница, где я проверяю условие.если условие истинно, отобразить другую страницу, иначе отобразить страницу входа.

@if (sitemaintainmode == "false")
{
    <body>
   
        <div class="navbar navbar-default">
            <div class="container">
          
                    @Html.Partial("_LoginPartial")
               
            </div>
        </div>

        <div class="container body-content">
            @RenderBody()
        </div>
        @Html.Partial("_Footer")

      
        </script>
    </body>
}
else
{
   @RenderPage("~/Views/Account/Error.cshtml"); 
    
}

Но это дает мне ошибку -

Метод "RenderBody" не был вызван для страницы макета "~ / Views / Shared /_Layout.cshtml ".

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Вы не можете игнорировать RenderBody() в своем коде, потому что, возможно, вы используете это Layout="~/Views/Shared/_Layout.cshtml" на своей странице cshtml.

Создайте отдельное customeErrorPage (View) и обработайте ваше состояние в Controller и используйте return RedirectToAction("Login Or Error") or use return View("Login or Errorpage")

Надеюсь, это поможет вам.

0 голосов
/ 20 сентября 2018

Вы можете обработать результат действия в контроллере, сделав перенаправление на представление «Ошибка» в контроллере учетной записи или используя customError в файле web.config.Например:

<customErrors mode="RemoteOnly" defaultRedirect="~/Home/Error_Generic/" >
  <error statusCode="500" redirect="~/Account/Error" />
</customErrors>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...