gpt4 book ai didi

asp.net-mvc - @Html.ActionLink() 在 if 语句中

转载 作者:行者123 更新时间:2023-12-02 00:09:24 25 4
gpt4 key购买 nike

我正在学习 MVC 4,因此使用 Razor 引擎来呈现我的 View 。请耐心等待:)

我有一个导航菜单,如下所示:

enter image description here

我希望有一个箭头,当用户单击其中一个导航菜单时,该箭头指向其内容。这是代码:

<li>
@Html.ActionLink("Business Intelligence", "Index", "Business_Intelligence")
@if ()
{
<span id="triangle">
<img src="~/Images/nav_arrow.png" />
</span>
}
</li>
<li>@Html.ActionLink("Marketing Services", "MarketingServices", "Marketing")</li>

现在,我想知道在 if 语句中写什么。我知道我需要将我的箭头链接到一个 Action 链接——像这样:

@if (@Html.ActionLink("Business Intelligence", "Index", "Business_Intelligence"))
{
<span id="triangle">
<img src="~/Images/nav_arrow.png" />
</span>
}

如有任何帮助,我们将不胜感激。谢谢你的时间。

PS:我的问题有道理吗?

这是我的看法:

     <!DOCTYPE html>

<head>
<meta charset="utf-8" />
<title>@ViewBag.Title - My ASP.NET MVC Application</title>
<link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
<meta name="viewport" content="width=device-width" />
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
</head>

<body>
<div class="WebContent">
<nav>
<ul id="menu">
<li>
<a href="@Url.Action("Index", "Business_Intelligence")">
<img src="~/Images/myImage-Logo.png" />
</a>

@if (ViewContext.RouteData.Values["controller"] == "Business_Intelligence")
{
<span class="triangle">
<img src="~/Images/nav_arrow.png" />
</span>
}

</li>
<li>
@Html.ActionLink("Business Intelligence", "Index", "Business_Intelligence")

@if (ViewContext.RouteData.Values["controller"] == "Business_Intelligence")
{
<span class="triangle">
<img src="~/Images/nav_arrow.png" />
</span>
}

</li>
<li>@Html.ActionLink("Marketing Services", "MarketingServices", "Marketing")</li>
</ul>

</nav>

@RenderSection("featured", required: false)
@RenderBody()
@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)

<footer>
<p>Footer</p>
</footer>

</div>

</body>

和我的 CSS:

 /* Images

-------------------------------------------- ----------*/

.triangle{
display:block;
text-align: center;

最佳答案

如果我理解正确,您实际上想要检测当前页面 是否是导航项链接到的页面,如果是,则在相应的导航项上呈现一些附加标记。为此,您可以使用 ViewContext:

<li>
@Html.ActionLink("Business Intelligence", "Index", "Business_Intelligence")
@if (ViewContext.RouteData.Values["controller"] == "Business_Intelligence")
{
<span id="triangle">
<img src="~/Images/nav_arrow.png" />
</span>
}
</li>

这将做的是检查当前操作是否正在由 Business_Intelligence Controller 执行,并且 - 如果是 - 在操作链接下方呈现您的附加标记。

请注意,这只会在首次加载 View 时呈现箭头,即如果单击“商业智能”加载新页面,那么此解决方案适合您。如果您需要能够动态地执行此操作(例如,单击“商业智能”实际上只是通过 jQuery 呈现更多内容而不实际刷新页面),那么 Nomad101 的解决方案更合适。

如果您需要比这更细的粒度,该集合还包含一个 “action” 键。

关于asp.net-mvc - @Html.ActionLink() 在 if 语句中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16288472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com