Krótka informacja czego nauczyłem się w danym tygodniu. Są to drobne rzeczy ale z takiej drobnicy robi się doświadczenie i umiejętności. Zapraszam.
Walidacja MVC
Aby wyświetlić konkretny błąd ze słownika ModelStateDictornary, wystarczy użyć wyrażenia:
@Html.ValidationMessage("keyName")
Dzięki temu można w ujednolicony sposób wyświetlać błędy walidacji od strony serwera. Piszę o tym, bo często widzę dużo kombinacji jak to zrobić a to dość prosty sposób. Źródło https://stackoverflow.com/a/15111483/5816153
JQuery.UI.Autocomplete – source
Gdy podajemy źródło danych w większości wypadków potrzeba tylko do pola source podać link do akcji w kontrolerze. Jednak gdy chcemy podać bardziej skomplikowane parametry wejściowe to należy zaimplementować funkcję function(request, resonse)
I teraz trzeba pamiętać(albo bardzo uważnie czytać dokumentację), że odpowiedź z ajax-a z danymi należy przekazać obiektowi response jak poniżej:
source: function (request, response) { $.ajax({ url: "@Url.Action("ACTION", "CONTROLLER")", type: 'POST', dataType: 'json', contentType: 'application/json', data: JSON.stringify({ Number: 12345}), success: function (data) { response(data) } }); }
JQuery.UI.Autocomplete – label
Tego to nawet czytając uważnie dokumentację ciężko było się doszukać. Gdy przygotowujemy dane do autocomplete-a to dane w formacie json muszą posiadać pole label. Gdzie pole to będzie zawierać etykietę do podpowiedzi.
var suggestions = _repository.Get(term).Select(s=>new { s.Id, s.Name, s.Number, s.Email, label = s.Name + "/" + s.Email+ "/" + s.Number }); return Json(suggestions, JsonRequestBehavior.AllowGet);