Jak zapewnić ostrzeżenia podczas sprawdzania poprawności w ASP.NET MVC?
Czasami wprowadzanie danych przez użytkownika nie jest całkowicie nieprawidłowe, ale można je uznać za problematyczne.
Na przykład:
Użytkownik wprowadza długie zdanie w jednej liniiName
pole.Prawdopodobnie powinien był użyćDescription
zamiast tego pole.Użytkownik wprowadza aName
to jest bardzo podobne do istniejącej jednostki.Być może wprowadza ten sam obiekt, ale nie zdawał sobie sprawy, że już istnieje, lub jakiś równoległy użytkownik właśnie go wprowadził.Niektóre z nich można łatwo sprawdzić po stronie klienta, niektóre wymagają kontroli po stronie serwera.
Jaki jest najlepszy sposób, może coś podobnegoDataAnnotations
uprawomocnienie,w takich przypadkach ostrzegać użytkownika? Kluczem jest tutaj to, że użytkownik musi być w stanie zastąpić ostrzeżenie i nadal przesyłać formularz (lub ponownie przesłać formularz, w zależności od implementacji).
Najbardziej realnym rozwiązaniem, które przychodzi do głowy, jest stworzenie jakiegoś atrybutu, podobnego do aCustomValidationAttribute
, który może wywołać wywołanie AJAX i wyświetli tekst ostrzegawczy, ale nie wpłynie naModelState
. Zamierzone użycie jest następujące:
[WarningOnFieldLength(MaxLength = 150)]
[WarningOnPossibleDuplicate()]
public string Name { get; set; }
W widoku:
@Html.EditorFor(model => model.Name)
@Html.WarningMessageFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
Jakieś pomysły?