2015-05-07 49 views
1

我有一個使用_mylayout.cshtml的剃刀file.cshtml。在我的_mylayout.cshtml文件中有幾個Action鏈接。在剃刀視圖中引用的佈局中禁用「動作鏈接」

從我的剃鬚刀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"; 
} 
.... 

回答

2

你不能在技術上。關於唯一可以做的事情是使用ViewBag來分支佈局代碼。

@if (ViewBag.HideDetailLink == null) 
{ 
    <li>@Html.ActionLink("Detail", "Edit", "DetailsFor", null, null)</li> 
} 

然後,在你的看法:

@{ 
    ViewBag.HideDetailLink = true; 
} 

實際上它並不不管你把它設置在這裏,只是它有一定的價值。默認情況下,它不會有值(將爲空),並且鏈接將因爲條件通過而顯示。

1

@Chris的替代解決方案是用jquery隱藏它。你可以通過給你的ActionLink一個ID(htmlAttribute param)來做到這一點。

@Html.ActionLink("Detail", "Edit", "DetailsFor", null, new { id = "detailsLink" }) 

我創建了一個小提琴向您展示它如何能工作:

<script type="text/javascript"> 
    $("#detailsLink").hide(); 
</script> 
http://jsfiddle.net/bxre7foe/

只是在底部添加了「隱藏」的方法來你_mylayout腳本塊