Ошибка: Следующие разделы были определены, но не были отображены для страницы макета "~ / Views / Shared / _AdminLayout.cshtml": "partalviewBanner ".
При первой публикации StackOverflowflow, пожалуйста, извините за плохой вопрос.
Когда я пытаюсь вызвать actionresult
из new controller
с новым _layout, renderbody()
в новом макетепо-прежнему возвращает oldIndex.cshtml
, а не определенный newIndex.cshtml
.Почему это?Цель состоит в том, чтобы иметь adminLayout со своими собственными взглядами.Таким образом, при вызове метода устанавливается новый макет с новым представлением.
UserController:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult LoggInnModal(LogInVM brukerlogin)
{
if (ModelState.IsValid)
{
CustomerVM kunde = new CustomerBLL().UserLogIn(brukerlogin);
if (kunde != null)
{
Session["Kunde"] = kunde;
if(kunde.Admin)
{
return RedirectToAction("AdmIndex", "Admin");
}
return Redirect(Request.UrlReferrer.PathAndQuery);
}
}
public class AdminController : Controller
{
// GET: Admin
public ActionResult AdmIndex()
{
return View();
}
}
_ViewStart.cshtml:
@using Oblig1.Model
@{
CustomerVM customer = (CustomerVM)HttpContext.Current.Session["Customer"];
}
@{
if (customer != null)
{
if (customer.Admin)
{
Layout = "~/Views/Shared/_AdminLayout.cshtml";
}
else
{
Layout = "~/Views/Shared/_Layout.cshtml";
}
} else
{
Layout = "~/Views/Shared/_Layout.cshtml";
}
}
Все до сих пор кажется, что оно работает, но когда браузер считывает ошибки AdminLayout.cshtml, возникает ошибка.
Теперь, когда читатель входит в этот раздел, renderbody по-прежнему вызывает другой .cshtml
, а не тот, который определен в AdminController.В этом случае происходит сбой, поскольку в новом макете не существует необходимых частичных представлений.
_AdminLayout.cshtml
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>@ViewBag.Title</title>
</head>
<body>
<div>
**This is where it calls the oldIndex.cshtml and not the newIndex.cshtml**
@RenderBody()
</div>
</body>
</html>
Спасибо.Если мой вопрос недостаточно определен, пожалуйста, скажите мне.