点网核心中的布局页面未显示从索引页面单击时的更改
Layout page in dot net core not showing changes on click from Index page
我在布局页面上有菜单,我需要在单击索引视图上的按钮时启用它们
在 Index 按钮上单击我调用了使用视图包设置标志的控制器操作,然后如果通过检查布局页面上的条件设置标志,我将启用菜单,条件已正确检查但菜单仍未启用,但如果我单击任何其他按钮然后菜单启用
Layout.cshtml
@if (@ViewBag.Enable == "true" || Context.Session.GetString("CustomerCode") == null)
{
<a href="#OCLegacy" data-toggle="collapse" aria-expanded="false" style="color:gray" class="bg-dark list-group-item list-group-item-action flex-column align-items-start disabled">
<div class="d-flex w-100 justify-content-start align-items-center">
<span class="bi bi-diamond-fill fa-fw mr-3"></span>
<span class="menu-collapsed">OC-Legacy</span>
<span class="submenu-icon ml-auto"></span>
</div>
</a>
}
Index.cshtml
<a asp-action="Index" style="align-self:self-end" data-id="@customer.CustomerCode"
class="btn btn-primary ManageSelect">
从控制器调用索引操作
这是 ViewBag.Enable
的演示。将 @customer.CustomerCode
传递给 action,如果它不为 null,则将 ViewBag.Enable
设置为 true.Else,将 ViewBag.Enable
设置为 false.If ViewBag.Enable
为 true,male菜单启用。
布局:
@if (@ViewBag.Enable != "true")
{
<a href="#OCLegacy" data-toggle="collapse" aria-expanded="false" style="color:gray" class="bg-dark list-group-item list-group-item-action flex-column align-items-start disabled">
<div class="d-flex w-100 justify-content-start align-items-center">
<span class="bi bi-diamond-fill fa-fw mr-3"></span>
<span class="menu-collapsed">OC-Legacy</span>
<span class="submenu-icon ml-auto"></span>
</div>
</a>
}
else {
<a href="#OCLegacy" data-toggle="collapse" aria-expanded="false" style="color:gray" class="bg-dark list-group-item list-group-item-action flex-column align-items-start">
<div class="d-flex w-100 justify-content-start align-items-center">
<span class="bi bi-diamond-fill fa-fw mr-3"></span>
<span class="menu-collapsed">OC-Legacy</span>
<span class="submenu-icon ml-auto"></span>
</div>
</a>
}
Index(asp-route-id
将把 @customer.CustomerCode
作为参数 id 传递给 action:
<a asp-action="Index" style="align-self:self-end" asp-route-id="@customer.CustomerCode" data-id="@customer.CustomerCode"
class="btn btn-primary ManageSelect">
操作:
public IActionResult Index(string id)
{
if (id != null)
{
ViewBag.Enable = "true";
}
else
{
ViewBag.Enable = "false";
}
return View();
}
结果:
我在布局页面上有菜单,我需要在单击索引视图上的按钮时启用它们 在 Index 按钮上单击我调用了使用视图包设置标志的控制器操作,然后如果通过检查布局页面上的条件设置标志,我将启用菜单,条件已正确检查但菜单仍未启用,但如果我单击任何其他按钮然后菜单启用
Layout.cshtml
@if (@ViewBag.Enable == "true" || Context.Session.GetString("CustomerCode") == null)
{
<a href="#OCLegacy" data-toggle="collapse" aria-expanded="false" style="color:gray" class="bg-dark list-group-item list-group-item-action flex-column align-items-start disabled">
<div class="d-flex w-100 justify-content-start align-items-center">
<span class="bi bi-diamond-fill fa-fw mr-3"></span>
<span class="menu-collapsed">OC-Legacy</span>
<span class="submenu-icon ml-auto"></span>
</div>
</a>
}
Index.cshtml
<a asp-action="Index" style="align-self:self-end" data-id="@customer.CustomerCode"
class="btn btn-primary ManageSelect">
从控制器调用索引操作
这是 ViewBag.Enable
的演示。将 @customer.CustomerCode
传递给 action,如果它不为 null,则将 ViewBag.Enable
设置为 true.Else,将 ViewBag.Enable
设置为 false.If ViewBag.Enable
为 true,male菜单启用。
布局:
@if (@ViewBag.Enable != "true")
{
<a href="#OCLegacy" data-toggle="collapse" aria-expanded="false" style="color:gray" class="bg-dark list-group-item list-group-item-action flex-column align-items-start disabled">
<div class="d-flex w-100 justify-content-start align-items-center">
<span class="bi bi-diamond-fill fa-fw mr-3"></span>
<span class="menu-collapsed">OC-Legacy</span>
<span class="submenu-icon ml-auto"></span>
</div>
</a>
}
else {
<a href="#OCLegacy" data-toggle="collapse" aria-expanded="false" style="color:gray" class="bg-dark list-group-item list-group-item-action flex-column align-items-start">
<div class="d-flex w-100 justify-content-start align-items-center">
<span class="bi bi-diamond-fill fa-fw mr-3"></span>
<span class="menu-collapsed">OC-Legacy</span>
<span class="submenu-icon ml-auto"></span>
</div>
</a>
}
Index(asp-route-id
将把 @customer.CustomerCode
作为参数 id 传递给 action:
<a asp-action="Index" style="align-self:self-end" asp-route-id="@customer.CustomerCode" data-id="@customer.CustomerCode"
class="btn btn-primary ManageSelect">
操作:
public IActionResult Index(string id)
{
if (id != null)
{
ViewBag.Enable = "true";
}
else
{
ViewBag.Enable = "false";
}
return View();
}
结果: