2010-04-24 6 views
17

Używam encji Entity Framework (v4). Mam obiekt o nazwie Car z właściwością Year typu integer. Właściwość Year nie zezwala na wartość NULL. Mam następujących w moim Tworzenie widoku:Wyświetl puste pole tekstowe za pomocą Html.TextBoxFor na niezerowej właściwości w elemencie EF

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

jestem zobowiązany do zwrotu nowy obiekt samochodów (ze względu na inne wymagania) w moim HttpGet Tworzenie działań w CarController.

Obecnie w polu tekstowym Year wyświetlane jest zero, ponieważ właściwość Year nie dopuszcza wartości NULL. Chciałbym wyświetlić pusty pole tekstowe w widoku Utwórz. Jak mam to zrobic?

Odpowiedz

1

Spróbuj to zamiast:

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

Mogłem to zrobić w ten sposób, ale wolę używać Html.TextBoxFor. – thd

+0

@ Html.TextBoxFor (model => model.Year, new {Wartość = ""})) umożliwia powiązanie modelu, ta odpowiedź nie. – MeanGreen

38

używać HTML Atrybuty przeciążeniem. W maszynce byłoby:

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

Należy również zauważyć, że "Wartość" musi mieć duży "V", aby to zadziałało, ale jest to najlepsze rozwiązanie. – blockloop

+3

Jak również skomentowałem podobną odpowiedź w jednym z powiązanych pytań ... Należy zauważyć, że to nie działa dobrze, gdy jest używane z typową walidacją po stronie serwera MVC, gdzie ponownie wyświetla się widok z błędami walidacji (Ex; 'if (! ModelState.IsValid) return View (viewmodel)'). Za każdym razem, gdy pole tekstowe jest renderowane przy ładowaniu strony, wyświetla pusty ciąg. Jest to świetne rozwiązanie do regularnego pierwszego renderowania strony, ale jest złe, gdy użytkownik wraca z powodu niepowodzenia sprawdzania poprawności. Wszelkie dane wprowadzone w polach zostaną utracone i zastąpione pustym łańcuchem. – EF0

-1

Spróbuj to próbujesz dołączyć do danej dziedzinie lub chcesz zmodyfikować istniejące pola z pustego TextBoxFor.

Html.TextBoxFor(model => model.Year, Model.Year="") 
Powiązane problemy