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?

questionAnswers(5)

yourAnswerToTheQuestion