2011-06-28 12 views
7

私はMVC 3、剃刀ビューエンジンを初めて使用しています。 私はviewmodelの値に従って、実行時にテキストボックスの可視性を設定したいと思います。MVC3のテキストボックスの可視性設定剃刀ビューエンジン

しかし、以下のコードは機能しません。一度コード上記

<td> 
    @Html.TextBox("CompanyName", "", new { visible = "false" }) 
</td> 

が動作を開始し、私はハードコード「偽」の代わりに@Model.EnableCompanyNameを置くことができます。

上記のコードを修正する際にお手伝いください。

答えて

14

これはあなたのブールModel.EnableCompanyNameに基づく表示タイプを変更します:)

はそれが役に立てば幸い:あなたは

@Html.TextBox("CompanyName", "", new { style = "display:none;" }) 

はここに、この例を参照してください必要があります!

@{ 
String displayMode = (Model.EnableCompanyName) ? "inline" : "none"; 
@Html.TextBox("CompanyName", "", new { style = "display:" + displayMode + ";" }) 
} 
+0

Thx Chris。あなたの最初の割り当てとその期待通りの作業では、noneをfalseに置き換えてください。 – Biki

+0

Woops!スクールボーイのエラーLOL。それを反映する答えを更新しました。 :) – Chris

2

(編集)

@Html.TextBox("CompanyName", "", new { style = Model.EnableCompanyName ? "display:inline" : "display:none" })

+0

こんにちは、のであってもハードコーディングfalseは機能しません。例:@ Html.TextBox( "CompanyName"、 ""、new {visible = "false"})は機能しません。 – Biki

+0

ので、次のように渡す必要があります:new {style = "display:none"} –

+1

次回は、より正確に何をしたいかを指定してください。 DOM要素を隠す方法がわからない場合、これは別の質問です。私はちょうどあなたを誤解しました。 –

9

それは、次のようなかみそりで行うには何もありません。 visibleは、input要素(Html.TextBoxが生成する要素)の有効な属性ではありません。

http://jsfiddle.net/QxSpU/

0

Html.TextBox( "会社名"、 ""、新しい{スタイル= Model.EnableCompanyName? "可視性:目に見える": "可視性:隠された"})@追加

関連する問題