2016-06-23 81 views
0

我正忙于使用mvc 5应用程序。我有一个数据库中的名称显示在HTML中的列表。我使用html.actionlinkA, B, C, D ...Z按字母顺序过滤名称。通过每个html.actionlink我穿过每个字母作为Id参数,然后在名字中使用.ToList()通过查找.Where()我的名字的第一个字母这回我控制器I过滤器匹配Id参数。如何通过控制器将类添加到html元素中?

这一切都很好。我现在需要做的是,如果没有以某个字母开头的名字,那么该字母必须在视图中变灰。

如何我通过控制器添加一个类的HTML元素?我需要确保如果没有某个字母的名字,那么我的html链接必须带有color: grey的css类。我不知道会有哪些名称,因为数据库由管理员填充。

回答

0

不太清楚我按照你的问题的设计流程,但我认为这个代码可以帮助你。

@if(model.Names.Where(x => x.StartsWith("L").Count() != 0) 
{ 
    @Html.ActionLink("L", "{Controller}", "{Action}", null, new {} { @class = "{NOT GRAY}"}) 
} 
@else 
{ 
    @Html.ActionLink("L", "{Controller}", "{Action}", null, new {} { @class = "grayed"}) 
} 

基本上,你可以写在剃刀语法IF语句,然后检查,看看是否传入的数据是做一个计数,然后不同的造型元素为每种情况下是空的。

因为我不知道你的模型使用了什么名字,你将什么类应用到你的不是灰色的元素,控制器名称,动作名称,那么你需要编辑这个代码才能使它工作。

+0

此代码有一些错误,我应该纠正呢? – vivek

+0

当然没问题!我在浏览器中写入它,但未验证它是否有效。不幸的是我的工作电脑上没有Visual Studios! –

0

使用ActionLink功能,您可以通过使用相应的HTML属性条目的匿名对象。

看看类型对象的参数,在ActionLink函数中调用htmlAttributes。

下面是一个例子(注意类的前缀是@,因为它是一个关键字):

@Html.ActionLink(
     "Portfolio", 
     "Index", 
     "Portfolio", 
     routeValues: null, 
     htmlAttributes: new { @class = "grayed" } 
) 
1

您可以定义您的CSS类并将其应用到html助手中。就像这样:

.yourClassName 
{ 
color:grey; 
} 

应用类:

@Html.ActionLink("Name", "{Controller}", null,new { @class ="yourClassName" }) 
+0

这将永远不会工作和混乱的路线价值。在'new'关键字前加'null'。 – vivek

相关问题