Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
podle Jon Galloway
MVC Music Store je výukové aplikace, která představuje a vysvětluje, jak používat ASP.NET MVC a Visual Studio pro vývoj pro web.
MVC Music Store je jednoduchá ukázková implementace obchodu, která prodává hudební alba online a implementuje základní správu webu, přihlašování uživatelů a funkce nákupního košíku.
Tato série kurzů podrobně popisuje všechny kroky potřebné k sestavení ukázkové aplikace ASP.NET MVC Music Store. Část 6 popisuje použití datových poznámek pro ověření modelu.
Máme velký problém s formuláři pro vytváření a úpravy: neprovádí žádné ověření. Můžeme třeba nechat požadovaná pole prázdná nebo zadat písmena do pole Cena a první chyba, kterou uvidíme, je z databáze.
Ověření můžeme do naší aplikace snadno přidat přidáním datových poznámek do tříd modelu. Datové poznámky nám umožňují popsat pravidla, která chceme použít u vlastností modelu, a ASP.NET MVC se postará o vynucování a zobrazování vhodných zpráv našim uživatelům.
Přidání ověření do formulářů alba
Použijeme následující atributy datových poznámek:
- Povinné – Označuje, že vlastnost je povinné pole.
- DisplayName – Definuje text, který se má použít v polích formuláře a ověřovacích zprávách.
- StringLength – Definuje maximální délku pole řetězce.
- Rozsah – Poskytuje maximální a minimální hodnotu číselného pole.
- Vazba – Zobrazí seznam polí, která mají být vyloučena nebo zahrnuta při vazbě hodnot parametrů nebo formulářů s vlastnostmi modelu.
- ScaffoldColumn – Umožňuje skrytí polí z formulářů editoru.
*Poznámka: Další informace o ověřování modelu pomocí atributů datových poznámek najdete v dokumentaci MSDN na adrese *https://go.microsoft.com/fwlink/?LinkId=159063
Otevřete třídu Album a přidejte následující příkazy using na začátek.
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
Dále aktualizujte vlastnosti a přidejte atributy zobrazení a ověření, jak je znázorněno níže.
namespace MvcMusicStore.Models
{
[Bind(Exclude = "AlbumId")]
public class Album
{
[ScaffoldColumn(false)]
public int AlbumId { get; set; }
[DisplayName("Genre")]
public int GenreId { get; set; }
[DisplayName("Artist")]
public int ArtistId { get; set; }
[Required(ErrorMessage = "An Album Title is required")]
[StringLength(160)]
public string Title { get; set; }
[Range(0.01, 100.00,
ErrorMessage = "Price must be between 0.01 and 100.00")]
public decimal Price { get; set; }
[DisplayName("Album Art URL")]
[StringLength(1024)]
public string AlbumArtUrl { get; set; }
public virtual Genre Genre { get; set; }
public virtual Artist Artist { get; set; }
}
}
Zatímco jsme tam, změnili jsme také Žánr a Interpret na virtuální vlastnosti. Díky tomu může Entity Framework podle potřeby provádět opožděné načítání.
public virtual Genre Genre { get; set; }
public virtual Artist Artist { get; set; }
Po přidání těchto atributů do našeho modelu Album naše obrazovky pro vytváření a úpravy okamžitě začnou ověřovat pole a používat zobrazené názvy, které jsme zvolili (např. adresa URL obrázku alba místo AlbumArtUrl). Spusťte aplikaci a přejděte do /StoreManager/Create.
Dále přerušíme některá ověřovací pravidla. Zadejte cenu 0 a ponechte název prázdný. Když klikneme na tlačítko Vytvořit, zobrazí se formulář s chybovými zprávami ověření, která pole nesplňují ověřovací pravidla, která jsme definovali.
Testování ověřování na straně klienta
Ověření na straně serveru je z hlediska aplikace velmi důležité, protože uživatelé můžou obejít ověřování na straně klienta. Webové stránky však formuláře, které implementují pouze ověřování na straně serveru, vykazují tři významné problémy.
- Uživatel musí počkat na odeslání formuláře, ověření na serveru a odeslání odpovědi do prohlížeče.
- Uživatel nedostane okamžitou zpětnou vazbu, když opraví pole, aby nyní splňovalo ověřovací pravidla.
- Prostředky serveru používáme k provádění logiky ověřování místo využití prohlížeče uživatele.
Šablony generování ASP.NET MVC 3 naštěstí mají integrované ověřování na straně klienta, což nevyžaduje žádnou další práci.
Zadání jednoho písmena do pole Název splňuje požadavky na ověření, takže ověřovací zpráva se okamžitě odebere.