Udostępnij za pośrednictwem


Korzystanie z kalendarza podręcznego interfejsu użytkownika HTML5 i jQuery UI z ASP.NET MVC — część 1

Autor: Rick Anderson

W tym samouczku przedstawiono podstawy pracy z szablonami edytora, szablonami wyświetlania i kalendarzem podręcznym platformy jQuery UI w aplikacji internetowej mvC ASP.NET.

W tym samouczku przedstawiono podstawy pracy z szablonami edytora, szablonami wyświetlania i kalendarzem podręcznym platformy jQuery UI w aplikacji internetowej ASP.NET MVC. Na potrzeby tego samouczka możesz użyć programu Microsoft Visual Web Developer 2010 Express Service Pack 1 ("Visual Web Developer"), który jest bezpłatną wersją programu Microsoft Visual Studio lub możesz użyć programu Visual Studio 2010 z dodatkiem SP1, jeśli już to masz.

Przed rozpoczęciem upewnij się, że zostały zainstalowane wymagania wstępne wymienione poniżej. Wszystkie te elementy można zainstalować, klikając następujący link: Instalator platformy internetowej. Alternatywnie można osobno zainstalować wymagane oprogramowanie, korzystając z następujących linków:

Jeśli używasz programu Visual Studio 2010 zamiast Visual Web Developer, zainstaluj wymagania wstępne, klikając następujący link: Wymagania wstępne programu Visual Studio 2010.

W tym samouczku założono, że ukończono samouczek Wprowadzenie do wzorca MVC 3 lub znasz ASP.NET programowanie mvC. Ten samouczek rozpoczyna się od ukończonego projektu z samouczka Wprowadzenie do wzorca MVC 3 .

Co utworzysz

Dodasz szablony (w szczególności edytuj i wyświetlasz szablony) do prostej aplikacji z listą filmów utworzoną w samouczku Wprowadzenie do wzorca MVC 3 . Dodasz również kalendarz podręczny jQuery UI datepicker , aby uprościć proces wprowadzania dat. Poniższy zrzut ekranu przedstawia zmodyfikowaną aplikację z wyświetlonym kalendarzem podręcznym jQuery UI datepicker.

Zrzut ekranu przedstawiający okno Movie jQuery z widokiem Edycji z polem Tytuł i polem Data wydania z kalendarzem podręcznym jQuery UI datapicker.

Umiejętności, których nauczysz się

Oto, co dowiesz się:

  • Jak używać atrybutów z przestrzeni nazw DataAnnotations do kontrolowania formatu danych, gdy są wyświetlane i kiedy są w trybie edycji.
  • Jak tworzyć szablony (edytować i wyświetlać szablony), aby kontrolować formatowanie danych.
  • Jak dodać jQuery UI datepicker jako sposób wprowadzania pól daty.

Wprowadzenie

Jeśli nie masz jeszcze aplikacji do wyświetlania listy filmów z projektu startowego, pobierz ją:

  • Pobierz.
  • W Eksploratorze Windows kliknij prawym przyciskiem myszy plik MvcMovie.zip i wybierz polecenie Właściwości.
  • W oknie dialogowym właściwości MvcMovie.zip wybierz pozycję Odblokuj. (Odblokowywanie uniemożliwia ostrzeżenie o zabezpieczeniach występujące podczas próby użycia pliku .zip pobranego z sieci Web).

Zrzut ekranu przedstawiający pole Właściwości pliku zip z kropką Mvc z wyróżnionym przyciskiem Zabezpieczenia i Odblokuj z czerwonym prostokątem.

Kliknij prawym przyciskiem myszy plik MvcMovie.zip i wybierz polecenie Wyodrębnij wszystko , aby rozpakować plik. W programie Visual Web Developer lub Visual Studio 2010 otwórz plik MvcMovieCS_TU.sln .

W Eksplorator rozwiązań kliknij dwukrotnie plik Views\Shared\_Layout.cshtml, aby go otworzyć. H1 Zmień nagłówek z MVC Movie App na Movie jQuery. Naciśnij CTRL+F5, aby uruchomić aplikację, a następnie kliknij kartę Narzędzia główne , która spowoduje przejście do Index metody kontrolera filmu. Aby wypróbować aplikację, wybierz link Edytuj i link Szczegóły dla jednego z filmów. Zwróć uwagę, że w widokach Indeks, Edytuj i Szczegóły data wydania i cena są ładnie sformatowane:

Zrzut ekranu przedstawiający okno Film jQuery z widokiem Szczegóły z ustawionymi wartościami dla wybranego filmu na liście.

Formatowanie daty i ceny jest wynikiem użycia atrybutu DisplayFormat we właściwościach Movie klasy.

Otwórz plik Movie.cs i oznacz DisplayFormat jako komentarz atrybut właściwości ReleaseDate i Price . Wynikowa Movie klasa wygląda następująco:

public class Movie {
    public int ID { get; set; }

    [Required(ErrorMessage = "Title is required")]
    public string Title { get; set; }

    //  [DisplayFormat(DataFormatString = "{0:d}")]
    public DateTime ReleaseDate { get; set; }

    [Required(ErrorMessage = "Genre must be specified")]
    public string Genre { get; set; }

    [Range(1, 100, ErrorMessage = "Price must be between $1 and $100")]
    //[DisplayFormat(DataFormatString = "{0:c}")]
    public decimal Price { get; set; }

    [StringLength(5)]
    public string Rating { get; set; }
}

Naciśnij ponownie CTRL+F5, aby uruchomić aplikację, a następnie wybierz kartę Narzędzia główne , aby wyświetlić listę filmów. Tym razem data wydania zawiera datę i godzinę, a pole ceny nie zawiera już symbolu waluty. Zmiana w Movie klasie została cofniętą wcześniej sformatowaną, ale naprawisz to za chwilę.

Zrzut ekranu przedstawiający okno Movie jQuery z widokiem Szczegóły z ustawionymi wartościami filmu wyświetlanymi po wprowadzeniu zmian w pliku Movie dot cs.

Używanie atrybutu DataAnnotations DataType do określania typu danych

Zastąp atrybut komentarz-out DisplayFormat dla ReleaseDate właściwości atrybutem DataType , używając Date wyliczenia. Zastąp DisplayFormat atrybut Price właściwości atrybutem DataType ponownie, tym razem przy użyciu Currency wyliczenia. Oto jak wygląda ukończony kod:

public class Movie {
    public int ID { get; set; }

    [Required(ErrorMessage = "Title is required")]
    public string Title { get; set; }

    [DataType(DataType.Date)]
    public DateTime ReleaseDate { get; set; }

    [Required(ErrorMessage = "Genre must be specified")]
    public string Genre { get; set; }

    [Range(1, 100, ErrorMessage = "Price must be between $1 and $100")]
    [DataType(DataType.Currency)]
    public decimal Price { get; set; }

    [StringLength(5)]
    public string Rating { get; set; }
}

Uruchom aplikację. Teraz data wydania i właściwości ceny są poprawnie sformatowane (czyli przy użyciu odpowiednich formatów daty i waluty). Atrybut DataType udostępnia metadane typu dla wbudowanych szablonów ASP.NET MVC, dzięki czemu pola są renderowane w poprawnym formacie. Użycie atrybutu DataType jest preferowane do używania atrybutu DisplayFormat , który pierwotnie znajdował się w kodzie, ponieważ DataType atrybut sprawia, że model jest czystszy i bardziej elastyczny do celów, takich jak internacjonalizacja.

W następnej sekcji zobaczysz, jak tworzyć niestandardowe szablony w celu wyświetlania pól dat.