我有一个 ASP(dot)NET Web 应用程序,它有一个简单的导航栏,我尝试使用 Blazor 组件,如果该页面恰好是活动页面,它将改变导航栏并增加左边框的宽度。到目前为止,我使用的 switch 语句将根据由字符串表示的当前页面进行切换。我的问题是我无法找到一种方法来以编程方式查找该网站当前所在的 URL。我已经多次搜索这个问题,每个解决方案都不适用于我,使用 HttpContext 也不起作用。
switch (CurrUrl)
{
case "Index":
<header>
<div>
<nav>
<ul class="main-menu">
<li id="CurPage">Home</li>
<li class="menu-item">Shop</li>
<li class="menu-item">FAQ</li>
<li class="menu-item">About</li>
</ul>
</nav>
</div>
</header>
break;
case "Shop":
<header>
<div>
<nav>
<ul class="main-menu">
<li class="menu-item">Home</li>
<li id="CurPage">Shop</li>
<li class="menu-item">FAQ</li>
<li class="menu-item">About</li>
</ul>
</nav>
</div>
</header>
break;
case "FAQ":
<header>
<div>
<nav>
<ul class="main-menu">
<li class="menu-item">Home</li>
<li Class="menu-item">Shop</li>
<li id="CurPage">FAQ</li>
<li class="menu-item">About</li>
</ul>
</nav>
</div>
</header>
break;
case "About":
<header>
<div>
<nav>
<ul …Run Code Online (Sandbox Code Playgroud) 我试图使用while循环进行检查我希望循环只要求用户重新输入其值,如果触发了三个条件之一.即如果响应为空,也不是"Y"或"N".我这样做是通过使用!运营商.我注意到即使响应是正确的选择,while循环仍然要求重新输入一个值.我也注意到,当我删除!操作员从第二个条件开始,用户在循环块工作后输入正确的响应代码,但是当我添加!操作员返回到循环工作的条件,即使响应是正确的.
PromptMessage("If you are using a different download path for your mods enter (Y)es. Or if you want to exit out the" +
" program enter (N)o!", ConsoleColor.Green);
string CustomPath = Console.ReadLine();
CustomPath.ToUpper();
Console.WriteLine(CustomPath);
while (!CustomPath.Contains("Y") || !CustomPath.Contains("N") || String.IsNullOrEmpty(CustomPath))
{
AlertMessage("Please enter either Y to continue or N to exit");
CustomPath = Console.ReadLine();
CustomPath.ToUpper();
}
Run Code Online (Sandbox Code Playgroud)