我試圖隱藏HTML.ActionLink默認情況下頁面第一次呈現時,然後控制基於用戶頁面的可見性。有什麼建議麼? 謝謝!有沒有辦法使HTML.ActionLink默認不可見?
回答
您可以通過設置它的html屬性來在動作鏈接上設置任何樣式。
Html.ActionLink(
"LinkName",
"Action",
null,
new { @style = "display:none" });
沒有任何建議可行。 我可能應該提到這個ActionLink位於Partial View的表格中。這可能是它的原因嗎? – 2009-11-05 18:08:56
如果你把它放在局部視圖中,你需要確保View使用它有一個相應的控制器來處理你定義的動作。我做的是 – Joseph 2009-11-05 18:21:55
。此ActionLink的操作完美。這個隱藏的東西應該很容易,但由於某種原因,它變成了一個真正的ha。。 :) – 2009-11-05 18:24:04
創建具有htmlAttributes您的操作鏈接助手超載,給它一個類
Html.ActionLink("link","link",null, new { @class=model.mystatus })
您將設置從屬性@class值模型中的那麼無論應用「顯示:無;」到CSS中的類,或者使用jquery - > $('。statusclass')將元素設置爲隱藏。hide();
我想你想控制由Html.ActionLink助手方法生成的標記的可見性,是嗎?如果是的話,你可以dinamically爲如下標籤中指定類:
<%=Html.ActionLink("link", "MyAction", null, new { @class = ViewData["actionLinkClass"] })%>
在您的控制器的操作方法,你可以定義可見還是隱藏風格ViewData["actionLinkClass"]
值。
唯一有效的方法是將ActionLink封裝在一個範圍內,指定一個類,將其隱藏在CSS中,並用JavaScript顯示它。出於某種原因將類名直接分配給ActionLink不起作用。
感謝大家的幫忙!
這裏有一個技巧:
- 添加CSS類鏈接
- CSS類添加到每一頁的body標籤,因爲你需要
- 編輯你的CSS使用許多獨特價值文件以顯示/隱藏鏈接爲基礎的身體標記類和鏈接上的類的組合。
範例CSS文件:
body.events .myLink,
body.about .myLink {
display:none;
}
body.programs .myLink {
display:inline;
}
那麼你不需要做任何時髦與ActionLink的。這並沒有解決你爲什麼要發佈一個你不想首先展示的鏈接的問題,但我相信你有一個很好的理由。
要決定天氣隱藏或顯示鏈接,您需要通過Model或ViewData提供此信息。我想你有一個母版頁的鏈接。
因此,第一步是爲您的網站中的所有視圖提供該信息。您可以通過創建基本控制器做到這一點,並重寫的方法(當然,所有的控制器應繼承的形式新):
protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
if (filterContext.ActionResult is ViewResult) {
ViewData["Shared-ShowTheLink"] = IsLinkeVisible(filterContext) ? "non-null" : null;
}
}
private bool IsLinkeVisible(ActionExecutedContext filterContext) {
// Show on the home page only, for example
var controllerName = filterContext.RouteData.Values["controller"];
var actionName = filterContext.RouteData.Values["action"];
var isHome = string.Compare(controllerName, "Home", StringComparison.InvariantCultureIgnoreCase) == 0;
var isIndex = string.Compare(actionName, "Index", StringComparison.InvariantCultureIgnoreCase) == 0;
return isHome && isIndex;
}
之後,你需要到您的主網頁(或視圖),並做一些事情像這樣的(假設WebForms的視圖引擎):
<% if (ViewData["Shared-ShowTheLink"] != null) { %>
Html.ActionLink("Link Text", "Action", "Controller");
<% } %>
現在你的鏈接應該是唯一的家庭/索引可見。
根據需要更改此修改IsLinkeVisible方法。
乾杯。
- 1. e.preventDefault - 有沒有辦法做到默認?
- 2. 有沒有辦法Rails 3.0.x可以默認使用Thin?
- 3. Ansible:有沒有辦法讓變量沒有默認值?
- 4. 有沒有辦法不使用默認的resx文件進行國際化?
- 5. 在PhpDocumentor中,有沒有辦法指定默認的版本號?
- 6. 有沒有辦法爲ggsave設置新的默認值?
- 7. 有沒有辦法在Debian中恢復默認文件權限?
- 8. 有沒有辦法配置Gradle默認日誌輸出?
- 9. 有沒有辦法改變vim的默認模式
- 10. 有沒有辦法改變visualstudiocode的默認路徑?
- 11. 有沒有辦法改變xsd:element的默認類型?
- 12. 有沒有辦法覆蓋默認對象打印
- 13. 有沒有辦法替換默認的X11菜單欄?
- 14. 有沒有辦法設置sfWidgetFormFilterDate小部件的默認值?
- 15. 有沒有辦法將默認值設置爲「00:00」?
- 16. 有沒有辦法編輯默認的構建設置?
- 17. 有沒有辦法讓動態默認參數?
- 18. 有沒有辦法在Z3中獲取默認上下文?
- 19. 有沒有辦法讓Visual Studio的默認
- 20. 在XAML中有沒有辦法將UpdateSourceTrigger默認爲PropertyChanged?
- 21. 有沒有辦法更改默認Haystack表單模板?
- 22. 有沒有辦法改變Google maps API的默認藍色?
- 23. 有沒有辦法指定python枚舉的默認值?
- 24. 有沒有辦法在CocoaPods中禁用默認的pch文件?
- 25. 有沒有辦法將默認的MessageTemplateResourceType提供給Validator?
- 26. 有沒有辦法重置JShell的默認導入?
- 27. 有沒有辦法設置默認的HTML5視頻音量?
- 28. 有沒有辦法在Spring XML中指定默認屬性值?
- 29. 有沒有辦法讓頁面標籤默認展開?
- 30. 有沒有辦法改變德爾福的默認EXE圖標
我嘗試了兩個建議,但沒有奏效。 這是我最後一次嘗試,它仍然可以在頁面上看到。 <%= Html.ActionLink(「Edit」,「Edit」,「Package」,new {id = Model.ID,@style =「display:none」},null)%> – 2009-11-05 17:08:51
style =「display:none ;」 「通知」;「並拿出@不需要它 – Mark 2009-11-05 17:22:41
試過了,仍然不起作用。 :) 我應該提到這個ActionLink是通過循環部分視圖中的模型項目添加的。 – 2009-11-05 18:20:36