NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 7 - Zpracování dat a validace v ASP.NET Core MVC

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Jakub Ondrák:30.6.2018 16:51

Ahoj, ta bublina na poslením obrázku se mi nezobrazuje. Když dám písmeno, tak po opuštění toho pole zmizí. Číslice zůstávají. Možná to bude verzí Windowsů a/nebo IE. Mám Win7

 
Odpovědět
30.6.2018 16:51
Avatar
Martin Petrovaj
Tvůrce
Avatar
Odpovídá na Jakub Ondrák
Martin Petrovaj:30.6.2018 16:59

Ahoj, najpravdepodob­nejšia možnosť je tá, že to je záležitosť prehliadača. Ako sa píše v článku, niektoré validačné hlášky a upozornenia si momentálne určuje browser takpovediac sám ("Browsers choose their own error messages and display those errors as they wish, however the jQuery Validation Unobtrusive package can override the messages and display them consistently with others." [1). Screenshoty sú z prehliadača Chrome, je možné, že IE (a iné browsery) to majú trošičku inak, nejaká validácia by ale stále mala fungovať. :-)

Editováno 30.6.2018 16:59
Odpovědět
30.6.2018 16:59
if (this.motto == "") { throw new NotImplementedException(); }
Avatar
Odpovídá na Martin Petrovaj
Jakub Ondrák:30.6.2018 17:04

Jasný, rozumím :-). Teď jsem to zkusil ve Firofoxu, a je to jiný.

Jinak ta validační hláška, že mám zadat číslo od 1 do 100, ta se vždy zobrazí a tím polem? Dá se umístit jinam? Formátovat?

 
Odpovědět
30.6.2018 17:04
Avatar
Martin Petrovaj
Tvůrce
Avatar
Odpovídá na Jakub Ondrák
Martin Petrovaj:30.6.2018 17:13

Validačná hláška by sa mala zobraziť tam, kde je v (CS)HTML kóde umiestnený span pre validačné správy:

<span asp-validation-for="Cislo1" class="text-danger"></span>

Čo sa týka formátovania hlášky samotnej, ak využívaš už hotové atribúty z System.Componen­tModel.DataAn­notations (napr. Required, Range, DataType atď), tak tá hláška je onen ErrorMessage, ktorý si môžeš upraviť podľa seba:

[Range(1, 100, ErrorMessage = "Zadejte prosím číslo od 1 do 100.")]

Priznám sa, že som nemal zatiaľ čas ani potrebu skúšať, ako by sa to spravilo, ak by si nad tým chcel nejakú väčšiu kontrolu (napr. aby bola správa dynamická - vypisovala niečo iné napr. v závislosti od nejakej premennej, alebo aby ErrorMessage obsahoval HTML markup), asi by som sa s tým skúsil najprv trochu pohrať, čo všetko to vie out-of-the-box a ak by mi niečo zásadné chýbalo, asi by som išiel do svojho vlastného atribútu.

Odpovědět
30.6.2018 17:13
if (this.motto == "") { throw new NotImplementedException(); }
Avatar
Odpovídá na Martin Petrovaj
Jakub Ondrák:30.6.2018 17:16

Jasný, díky za odpověď a taky dobrej článek :-)

 
Odpovědět
30.6.2018 17:16
Avatar
Bebbana
Člen
Avatar
Odpovídá na Martin Petrovaj
Bebbana:13.7.2018 12:40

Možná by to uměl NuGet balíček Foolproof? Zatím nevím, co vše umí, ale použila jsem jej párkrát, třeba při validaci, které výsledek závisel na na hodnotě jiné vlastnosti, možná to jde i s proměnými.

public bool ImageExists { get; set; } = false;

[RequiredIfFalse("ImageExists", ErrorMessage = "Nahrajte prosím obrázek podpisu.")]
[Display(Name = "Podpis")]
public HttpPostedFileBase UploadedImage { get; set; }
...
 
Odpovědět
13.7.2018 12:40
Avatar
Martin Petrovaj
Tvůrce
Avatar
Odpovídá na Bebbana
Martin Petrovaj:13.7.2018 12:57

Foolproof nebol určite zlý, ale už je to dosť starý balíček a navyše nekompatibilný s .NET Core. Samozrejme, sú aj alternatívy, ktoré sú novšie, vo viacerých ohľadoch lepšie a majú aj Core verziu - napr. FluentValidation :-)

V seriáli o tvorbe eshopu, ktorý je vo fáze dokončovania bude dokonca ukázané, ako si vlastné validačné atribúty podobné tým z Foolproof pomocou reflexie napísať ;-)

Odpovědět
13.7.2018 12:57
if (this.motto == "") { throw new NotImplementedException(); }
Avatar
Bebbana
Člen
Avatar
Odpovídá na Martin Petrovaj
Bebbana:13.7.2018 14:44

Díky za tip, s .NET Core pracuju jen chvíli, takže zatím nemám takové zkušenosti.

 
Odpovědět
13.7.2018 14:44
Avatar
Jiří Láska:26.1.2021 10:53

Ahoj,
když stáhnu projekt pod článkem a otevřu ho ve Visual studiu, tak je všechen kód ve všech souborech červeně podtržený a nic nefunguje. Jak mám tento problém vyřešit, a v čem vůbec ten problém spočívá?

 
Odpovědět
26.1.2021 10:53
Avatar
Odpovídá na Jiří Láska
Vašek Doškář:18.4.2021 10:54

Ahojda, nezkoušel jsi aktualizovat VS, případně ASP.NET?

 
Odpovědět
18.4.2021 10:54
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 18.