获取在三元操作符中使用的Url的最后一部分



我对c#非常陌生,我正在使用ASP。6 .

净在。cshtml Razor页面上,我试图使用三元运算符来填写基于URL路径名的最后一段的HTML元素类。在一个名为的页面上localhost:7659/Identity/Account/Login我正在尝试测试加载的URL页面名称是否有单词Login

这就是我目前正在尝试的:

<a class="@Context.Request.Path == '/Login' ? 'active-page' : ''" href="/Identity/Account/Login">

但是上面显示为

<a class="/Identity/Account/Login == '/Login' ? 'active-page-header-menu-link' : ''" href="/Identity/Account/Login">

即代码没有被解析出来,@Context.Request.Path也返回整个URL路径名,在这种情况下,/Identity/Account/Login我怎么才能返回值Login

?

感谢

您生成的html也不正确,您需要在锚类中使用@(...)

把你的代码改成:

<a class="@(Context.Request.Path.Value.IndexOf("/Login")>-1? "active-page" : "")" href="/Identity/Account/Login">XXX</a>

如果请求url的最后一段是Login,则生成链接:

<a class="active-page" href="/Identity/Account/Login">XXX</a>

如果最后一段不是Login,则生成链接:

<a class href="/Identity/Account/Login">XXX</a>

您可以检查路径是否包含'login',如:

Context.Request.Path.contains("Login")

或者使用下面的代码来获取URL的最后一部分:

Context.Request.Path.Substring(Context.Request.Path.LastIndexOf('/') + 1)

相关内容

  • 没有找到相关文章

最新更新