我试图隐藏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. 有没有办法使用sendmail更改默认返回路径?
- 5. 有没有办法总结默认情况下不可见的文本框的值
- 6. 有没有办法在Eclipse中使空包可见?
- 7. Python:有没有办法让Entry字段具有默认值?
- 8. 当没有绑定元素时,使默认可见性崩溃
- 9. 有没有办法看到元素是否可见,可点击?
- 10. 有没有办法不使用默认的resx文件进行国际化?
- 11. 有没有办法在Spring XML中指定默认属性值?
- 12. 有没有办法让页面标签默认展开?
- 13. 在XAML中有没有办法将UpdateSourceTrigger默认为PropertyChanged?
- 14. 有没有办法改变vim的默认模式
- 15. 有没有办法将默认的MessageTemplateResourceType提供给Validator?
- 16. 有没有办法改变visualstudiocode的默认路径?
- 17. 有没有办法覆盖OmniAuth默认配置?
- 18. 有没有办法在ServiceStack中禁用默认端点?
- 19. 有没有办法设置Heroku Toolbet的默认应用程序?
- 20. 有没有办法替换默认的X11菜单栏?
- 21. 有没有办法指定python枚举的默认值?
- 22. 有没有办法改变自动创建的默认“ID”列?
- 23. 在PhpDocumentor中,有没有办法指定默认的版本号?
- 24. 有没有办法让Visual Studio的默认
- 25. 有没有办法设置绘图窗口的默认大小?
- 26. 有没有办法在默认的treeview中定义多个itemtemplate?
- 27. 有没有办法让动态默认参数?
- 28. 有没有办法编辑默认的构建设置?
- 29. 有没有办法强制OracleCommand.BindByName默认为真ODP.NET?
- 30. 有没有办法设置ImageLoader的默认图像?
我尝试了两个建议,但没有奏效。 这是我最后一次尝试,它仍然可以在页面上看到。 <%= 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