次のRazorファイルがあるとしましょう_Layout.cshtml
。ASP.NET Core3 +およびRazorPagesを使用する場合、コメント付きの条件を書き込むにはどうすればよいですか。
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" asp-page="/Index">Index</a>
</li>
@* If route starts with /a/, for example http://localhost/a/1.html and http://localhost/a/2/1.html *@
<li class="nav-item">
<a class="nav-link" asp-page="/a/Index">A</a>
</li>
@* If route starts with /b/, for example http://localhost/b/1.html and http://localhost/b/2/1.html *@
<li class="nav-item">
<a class="nav-link" asp-page="/b/Index">B</a>
</li>
<li class="nav-item">
<a class="nav-link" asp-page="/b/1/Index">B other</a>
</li>
</ul>
Razor PagesViewContext.RouteData.Values["page"]
では、_Layoutファイルでも使用できます。URLがegの場合、https://localhost:44359/Help/About
を生成し/Help/About
ます。
コードの使用:
@{
string page = ViewContext.RouteData.Values["page"] as string; // Values[] produces objects, so cast is needed
}
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" asp-page="/Index">Index</a>
</li>
@if (page.StartsWith("/a/"))
{
<li class="nav-item">
<a class="nav-link" asp-page="/a/Index">A</a>
</li>
}
@if (page.StartsWith("/b/"))
{
<li class="nav-item">
<a class="nav-link" asp-page="/b/Index">B</a>
</li>
<li class="nav-item">
<a class="nav-link" asp-page="/b/1/Index">B other</a>
</li>
}
</ul>
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加