2016-06-23 80 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

相關問題