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ć.
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
@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
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