2013-05-24 18 views

Odpowiedz

18

ValueFor spowoduje wywołanie szablonu, który istnieje dla renderowania typu właściwości. Domyślnie ten szablon może być tak prosty jak ToString(), ale możesz zdefiniować wszystko jako szablon.

@Model.PropertyName po prostu przedstawi wartość jako ciąg.

+0

Z [dokumentacja] (http://msdn.microsoft.com/en-us/library/system.web.mvc .html.valueextensions.valuefor (v = vs.108) .aspx) dla 'ValueFor':" Zapewnia mechanizm do tworzenia niestandardowych znaczników HTML kompatybilnych z segregatorami i szablonami ASP.NET MVC. " – dom

29

@Html.ValueFor(x => x.PropertyName) wiele razy wywołuje kod i odbicie pod maską.
Pozwoli to dostosować sposób prezentacji wartości, a następnie uzyskać spójny format w całej witrynie. Na przykład, jeśli twoja posiadłość jest ozdobiona DisplayFormatAttribute.

dosłownie pobiera wartość nieruchomości bezpośrednio, wywołując na niej ToString() i HTML z wynikiem. Nie będzie żadnego innego formatowania.

 

Aby zilustrować, można zobaczyć:

[DisplayFormat(DataFormatString="{0:C}")] 
public decimal PropertyName = 1234.56; 

@Html.ValueFor(x => x.PropertyName) => "£1,234.56" 
@Model.PropertyName     => "1234.56" 
+1

To świetny przykład. Dziękuję Ci! – Buffalo

Powiązane problemy