Mam sytuację, w której przesyłam obraz wybrany przez użytkownika z jego lokalnego systemu plików. Mój formularz moim zdaniem ma zasadniczo dwa przyciski przesyłania. Jeden jest używany do normalnego przesłania formularza i wykonywane jest wszystkie sprawdzanie poprawności. Drugi służy tylko do przesłania obrazu, w takim przypadku nie chcę jeszcze sprawdzać poprawności.
Udało mi się wyłączyć walidację po stronie klienta, nadając przyciskowi przesyłania „Prześlij obraz” wartość klasy „nazwa stylu anuluj”, więc
<input type="submit" name="UploadImageButton" value="Upload Image" class="style-name cancel" />
Teraz, kiedy wysyłam z powrotem, mój model ma właściwość UploadImageButton, po kliknięciu tego przycisku zapełnia tę właściwość (nazwa wejścia jest zgodna z Property). W ten sposób wiem, czy formularz został przesłany przez mój prawdziwy przycisk Prześlij, czy przez przycisk UploadImageButton.
Moje pytanie brzmi… Jak mogę wyłączyć sprawdzanie poprawności ServerSide? Nie chcę, aby podsumowanie walidacji było wyświetlane, gdy użytkownik kliknie ten przycisk. Wiem, że możesz za pomocą tego dodać błędy modelu niestandardowego
ModelState.AddModelError("{key}", "{error msg}");
Szukam sposobu na usunięcie błędów modelu. czy to możliwe?
EDYTOWAĆ:
Oto co wymyśliłem:
foreach (var key in ModelState.Keys.ToList().Where(key => ModelState.ContainsKey(key))) {
//ModelState.Remove(key); //This was my solution before
ModelState[key].Errors.Clear(); //This is my new solution. Thanks bbak
}
Where(key => ModelState.Keys.Contains(key))
? Wygląda na to, że klauzula Where jest zbędna, ponieważ każdy klucz w ModelState.Keys będzie miał swoją ModelState.Keys.Contains (key) zwracającą wartość true.