/ / Webforms C # validácia na strane klienta CustomValidator pomocou WebAPI - c #, javascript, validácia, asp.net-web-api

Webforms C # validácia na strane klienta CustomValidator pomocou WebAPI - c #, javascript, validácia, asp.net-web-api

V podstate chcem napísať svoju validačnú logiku raz a použiť ju na strane servera i na strane klienta.

Zdá sa, že http://www.asp.net/web-forms/tutorials/hands-on-labs/whats-new-in-web-forms-in-aspnet-45 by sa hodil účet, ale zdá sa, že nie je podpora pre jednoduchý text, takže .....

Používam C # a napísal som aplikáciu Webforms 4.5 podporovanú rámcom entity 5. Na čo sa pozerám, je, ako poskytnúť validáciu na strane klienta a na strane servera bez opakovanie logika validácie.

Povedz, že mám textový vstup, ktorý chcem overiťpre minimálnu dĺžku, existenciu, maximálnu dĺžku. Mohol by som na formulári vložiť vlastný validátor a napísať nejaký javascript kód, ale potom by som musel kódovať niečo podobné aj na zadnej strane.

Zdá sa, že lepším prístupom by bolozapamätajte logiku overenia na zadnej strane a potom zavolajte túto logiku cez HTTP GET z JS. Takže ak potrebujem zmeniť validačnú logiku, aktualizujem ju raz v kóde za sebou a klientská strana JS zostane rovnaká ako jej len volanie rovnakého GET.

Videl som rôzne príklady týkajúce sa rozhrania MVC / Web One / Web API, ale nevidím, ako môžem použiť to, čo navrhujem.

Má niekto nejaké návrhy? Bolo to už predtým? Nechcem reimplementovať koleso, ak nemusím.

odpovede:

0 pre odpoveď č. 1

ASP.NET to robí pre vás! Môžete použiť anotácie vo vašich modelových triedach, napríklad:

 [Required, StringLength(100), Display(Name = "Name")]
public string ProductName { get; set; }

Pozrite si tento tutoriál: http://www.asp.net/web-forms/tutorials/aspnet-45/getting-started-with-aspnet-45-web-forms/create_the_data_access_layer

Existuje veľa anotácií, ktoré môžete použiť, a budú pracovať aj pre validáciu na strane klienta. Takže musíte len "napísať" logiku raz.

Ak štandardné anotácie nie sú dostatočné, vymôže vyhlasovať svoje vlastné poznámky. Ale potom musíte tiež napísať validáciu na strane klienta. To je naozaj problematické. Vytváranie GET-volaní na server pre overenie je samozrejme možné, ale toto by nebolo "skutočné" validácia na strane klienta. V takýchto prípadoch by mohlo byť najvhodnejšie riešenie dvojitého zachovania logiky.