2011-06-28 7 views
7

Jestem nowym modelem MVC 3, maszynki do golenia. Chcę ustawić widoczność pola tekstowego w czasie wykonywania zgodnie z wartością w moim viewmodel.Ustawianie widoczności pola tekstowego w widoku podglądu maszyny Razer MVC3

Ale poniższy kod nie działa.

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

Gdy powyższy kod rozpoczyna pracę, mogę umieścić @Model.EnableCompanyName zamiast sztywno „false”.

Proszę o pomoc w poprawieniu powyższego kodu.

Odpowiedz

14

To będzie zmienić typ wyświetlacza na podstawie swojej Model.EnableCompanyName bool :)

nadzieję, że to pomaga!

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

Thx Chris. Po prostu zamień none na false w swoim pierwszym zadaniu i działaj zgodnie z oczekiwaniami. – Biki

+0

Woops! Szkole chłopiec błąd lol. Zaktualizowana odpowiedź odzwierciedla to. :) – Chris

2

(red)

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

+0

Cześć, Nawet z hardcoding false nie działa. Na przykład: @ Html.TextBox ("CompanyName", "", new {visible = "false"}) nie działa. – Biki

+0

, więc musisz przekazać: nowy {styl = "display: none"} –

+1

Następnym razem spróbuj podać dokładniej, czego chcesz. Jeśli nie wiesz, jak ukryć element DOM, jest to kolejne pytanie. Po prostu źle cię zrozumiałem. –

9

To nie ma nic wspólnego z brzytwą jako takiego. visible nie jest poprawnym atrybutem dla elementu input (który będzie generował Html.TextBox). Musisz

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

Zobacz przykład tutaj:

http://jsfiddle.net/QxSpU/

0

Dodaj @ Html.TextBox ("Nazwa firmy", "", new {style = Model.EnableCompanyName? "Visibility: visible": "visibility: hidden"})

Powiązane problemy