Czego nauczyłem w 13 tygodniu pracy?

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);

Dokumentacja