我有一个使用_mylayout.cshtml的razor file.cshtml。在我的_mylayout.cshtml文件中有几个Action链接。
从我的razor file.cshtml如何在_mylayout.cshtml文件中禁用/隐藏动作链接?
_mylayout.cshtml
...
..
<li>@Html.ActionLink("Detail", "Edit", "DetailsFor", null, null)</li>
...
..
my file.cshtml which is using _mylayout.cshtml
...
@{
ViewBag.Title = "Details Information";
Layout = "~/Views/_mylayout.cshtml";
}
....
答案 0 :(得分:2)
你不可能在技术上。关于你唯一能做的就是使用ViewBag
来分支布局代码。
@if (ViewBag.HideDetailLink == null)
{
<li>@Html.ActionLink("Detail", "Edit", "DetailsFor", null, null)</li>
}
然后,在您看来:
@{
ViewBag.HideDetailLink = true;
}
在这里设置它并不重要,只是它有一些价值。当然,默认情况下,它不会有值(将为空),并且因为条件通过,所以会显示链接。
答案 1 :(得分:1)
@Chris的另一种解决方案是用jquery隐藏它。您可以通过为ActionLink提供ID(htmlAttribute参数)来完成此操作。
@Html.ActionLink("Detail", "Edit", "DetailsFor", null, new { id = "detailsLink" })
我创建了一个小提琴,告诉你它是如何工作的:http://jsfiddle.net/bxre7foe/
只需将“隐藏”方法添加到底部的_mylayout脚本块:
<script type="text/javascript">
$("#detailsLink").hide();
</script>