2009-08-23 14 views
36

Say gdybym miał w tej tabeli w moim DB: ProductJak używać prefiksu Bind?

Miał

ProductId 
ProductName 
ProductType 

teraz z jakiegoś powodu nie mogę wymienić moje otaczaniem productName i Producttype więc teraz moja metoda Zobacz wyglądałby następująco

public ViewResult Test([Bind(Exclude ="ProductId")] Product) 

Teraz przez moje zabawę nic nie będzie pasować do tego produktu, ponieważ mają one różne nazwy.

Domyślam się, że to jest miejsce, w którym przedostał się prefiks, ale nie wiem, jak go użyć. Nie używam go i nie wykluczam w tym samym czasie.

Czy ktoś może podać mi przykład?

Odpowiedz

115

Prefiks jest używany w następujący sposób, jeśli w widoku masz ...

<select name="p.ProductType">....</select> 
<input type="text" name="p.ProductName" /> 

Można powiązać formularz przychodzących do instancji modelu wykonując coś jak

public ActionResult([Bind(Prefix="p")]Product product) 

You należy zauważyć, że MVC zrobiłoby to automatycznie dla ciebie, gdybyś nazwał swój argument metody p.

Prefiks może być bardzo przydatny, jeśli próbujesz powiązać wiele elementów jednocześnie (np. Dwa pola nazw).

Aby użyć wykluczają wiązanie się pewne właściwości (tj unikać ludzi przechodzących w ProductIds w postaci kutej) wystarczy ustawić nazwy własności wykluczyć

public ActionResult([Bind(Prefix="p", Exclude="ProductId")]Product product) 

Zapewni to, że ProductId na podmiot nigdy nie zostanie ustawione .

Jeśli chcesz powiązać dwie zupełnie różne nazwy pól, np. Wpisz do ProductType, aby zobaczyć niestandardowe powiązanie modelu lub po prostu chwytając pole formularza FormCollection.

+1

Świetna odpowiedź. +1 - to mi pomogło. – Chev

Powiązane problemy