7

Wiem, że jeśli chcę powiązać elementy niesekwencyjne z listą w MVC, można użyć składni Index opisanej jako here.Wiążące niesekwencyjne listy z niestandardowym segregatorem modelu

Jednak nie mogę uzyskać zdalnego sprawdzania poprawności do pracy z tym (przy użyciu atrybutu Remote).

Na przykład, gdybym miał model takiego:

public class AddUsers { 
    public List<User> Users { get; set; } 
    public string Comment { get; set; } 
} 

public class User { 
    [Remote("UsernameAvailable", "User")] 
    public string Name { get; set; } 
} 

wtedy przypuszczać, moim zdaniem mam następujący (mam celowo pomijając pomocników Html używam dla jasności):

<input type="hidden" name="Users.Index" value="foo" /> 
<input type="text" name="Users[foo].Name" /> 

<input type="hidden" name="Users.Index" value="bar" /> 
<input type="text" name="Users[bar].Name" /> 

W postaci słupka, pole Index idzie na przejażdżkę, która pomaga modelu wiązania spoiwa, wszystko ładnie, jak:

Comment=bla&Users.Index=foo&Users[foo].Name=john&Users.Index=bar&Users[bar].Name=bob 

Ale gdy zdalne sprawdzanie poprawności wywołuje jedynie ten jest wysyłany do moich działań (dwóch odrębnych wniosków, po jednym dla każdej pozycji, która została zatwierdzona):

Users[foo].Name=john 
Users[bar].Name=bob 

Bez Index model spoiwo nie wie, co zrobić z to. Nie może on ani powiązać z , ani też nie może być powiązany z .

Co prowadzi mnie do mojego pytania.

Czy istnieje sposób napisania niestandardowego spoiwa modelu, który może obsłużyć niesekwencyjne listy bez potrzeby używania notacji Index? Muszę przyznać, że trudno mi zrozumieć, dlaczego notacja Index byłaby konieczna (może z wyjątkiem pewnego rodzaju optymalizacji).

Używam MVC 4 i .NET 4.5.

Uwaga: nigdy nie zawiedli się wokół z niestandardowych modeli spoiw wcześniej, więc jestem naprawdę po prostu szukasz jakiegoś ogólnych wskazówek na temat tego, czy byłoby to możliwe (lub po prostu ślepy zaułek) i ewentualnie kilka wskazówek dla zaczynać.

+0

Teoretycznie Remote walidator powinny działać prawidłowo. Czy możesz przedłużyć swój post, w jaki sposób chcesz używać Zdalnego weryfikatora, a zdalna akcja wygląda? – nemesv

+0

@nemesv, zaktualizowałem swój post. Czy to wystarczające wyjaśnienie? Ani akcja sprawdzania poprawności, w której 'User', a' List 'ani' AddUser' nie będzie w stanie powiązać, ponieważ brakuje 'Index'. – Eric

+0

udało mi się rozwiązać mój problem poprzez dostosowanie rozwiązań z [tej odpowiedzi] [1] [1]: http://stackoverflow.com/a/10801577/546561 – Eric

Odpowiedz

0

udało mi się rozwiązać mój problem poprzez dostosowanie rozwiązania z this answer - Eric Mar 22 '13 na 22:28

Powiązane problemy