2016-06-23 10 views
0

私はmvc 5アプリケーションを使用しています。私はhtmlで表示されるデータベースからの名前のリストを持っています。 A, B, C, D ...Zの場合は、html.actionlinkをアルファベット順にフィルタリングします。各html.actionlinkを介して私はIdパラメータとして各文字を渡し、私のコントローラでは.ToList()を使用して返されるフィルタ名を.Where()の最初の文字が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

関連する問題