2010-04-24 8 views
17

Utilizzo le entità Entity Framework (v4). Ho un'entità chiamata Car con una proprietà Year di tipo intero. La proprietà Year non consente NULL. Ho il seguente, a mio avviso Crea:Visualizza la casella di testo vuota utilizzando Html.TextBoxFor su una proprietà non nullo in un'entità EF

<%= Html.TextBoxFor(model => model.Year) %> 

sono tenuto a restituire un nuovo oggetto per la vettura (a causa di altri requisiti) nella mia HttpGet Creare azione nel CarController.

Attualmente, uno zero viene visualizzato nella casella di testo Anno perché la proprietà Anno non consente NULL. Vorrei visualizzare una casella di testo vuota nella vista Crea. Come faccio a fare questo?

risposta

1

Prova a modificare:

Html.TextBox("Year", "") 
+0

Potrei farlo in questo modo ma preferisco usare Html.TextBoxFor. – thd

+0

@ Html.TextBoxFor (model => model.Year, new {Value = ""}) consente il binding del modello, questa risposta no. – MeanGreen

38

Usa attributi HTML sovraccarico. In rasoio sarebbe:

@Html.TextBoxFor(model => model.Year, new { Value = "" }) 
+12

È anche importante notare che "Valore" deve avere una "V" maiuscola perché funzioni, ma questa è la soluzione migliore. – blockloop

+3

Come ho anche commentato una risposta simile in una delle domande collegate ... Va notato che questo non funziona bene se usato con la tipica validazione lato server MVC in cui si rivisualizza la vista con gli errori di validazione (Ex; 'if (! ModelState.IsValid) restituisce View (viewmodel)'). Ogni volta che la casella di testo viene sottoposta a rendering al caricamento della pagina, verrà visualizzata una stringa vuota. Questo è ottimo per il normale rendering della pagina per la prima volta, ma è brutto quando l'utente ritorna in caso di mancata convalida. Qualsiasi dato inserito nei campi verrà perso e sostituito con la stringa vuota. – EF0

-1

Prova questa è che si sta tentando di aggiungere al vostro campo o da modificare un campo esistente con una TextBoxFor vuoto.

Html.TextBoxFor(model => model.Year, Model.Year="") 
Problemi correlati