2011-11-14 24 views
2

MVCアプリケーションの条件に基づいてボタンを無効にしようとしています。条件に基づいてhtmlボタンを無効にする

私が思い付いた:

@if (!item.Validated && HttpContext.Current.User.IsInRole("regionaladmin")) { 
    <input type="button" class="btnvalidate" value="Validate" [email protected] /> <span>|</span> 
} 
else { 
    <input type="button" class="btnvalidate" value="Validate" [email protected] disabled = "disabled" /> <span>|</span> 
} 

しかし、これはかなりラフなようです。

誰もこの少ない行を作る良い方法を提案できますか?

答えて

2

あなたは三元表現

<input type="button" class="btnvalidate" value="Validate" [email protected] 
@((!item.Validated && HttpContext.Current.User.IsInRole("regionaladmin")) ? "disabled" : "") 
> <span>|</span> 
2

を使用することができますあなたはありません、ASP.NETを使用していますか?どうしてインラインコードをスキップして.csファイルで行うのですか?

マークアップ:

<input type="button" ID="validate" runat="server" class="btnvalidate" value="Validate" [email protected] /> 

コードの背後にある:

if (!item.Validated && HttpContext.Current.User.IsInRole("regionaladmin")) { 
    validate.Attributes.Add("disabled","disabled"); 
} 
+0

彼の小さな貧しいそれはMVCのです。このようなものはまだ適用することができ? – AnonyMouse

+0

@AnonyMouse - 私はそれがMVCであることを知らなかった。あなたのタグはちょうどその時にhtmlを持っていました。その場合は、Simone Vittoriの答えを見てください。 –

0

これは20ページを持っている場合のみ、それはあなたがのを作成する必要があり、あなたがそれらでこのコードを記述することを意味します、良いではありません次のようになります:

あなたのために必要なHTMLを書き込む拡張ヘルパーメソッドは、次のようになります。

@Html.ButtonForWithRole(x=>"regionaladmin") 

そして、あなたの拡張メソッド

内のすべてのビジネスロジックをカプセル化したり、同じ操作を行うと、部分ビューを使用する部分図を作るが、

関連する問題