Co nowego we wzorcu ASP.NET MVC 5.1
autor: Microsoft
W tym temacie opisano nowości w ASP.NET Web MVC 5.1.
Znane problemy i zmiany- powodujące niezgodność Poprawki
Wymagania programowe
- Visual Studio 2012: pobierz ASP.NET and Web Tools 2013.1 dla programu Visual Studio 2012.
- Visual Studio 2013: pobierz Visual Studio 2013 Update 1. Ta aktualizacja jest wymagana do edycji ASP.NET widoków Razor MVC 5.1.
Pobierz
Funkcje środowiska uruchomieniowego są wydawane jako pakiety NuGet w galerii NuGet. Wszystkie pakiety środowiska uruchomieniowego są zgodne ze specyfikacją semantycznego przechowywania wersji . Najnowszy pakiet ASP.NET MVC 5.1 RTM ma następującą wersję: "5.1.2". Te pakiety można instalować lub aktualizować za pomocą narzędzia NuGet. Wydanie zawiera również odpowiednie zlokalizowane pakiety w programie NuGet.
Możesz zainstalować lub zaktualizować wydane pakiety NuGet przy użyciu konsoli Menedżera pakietów NuGet:
Install-Package Microsoft.AspNet.Mvc -Version 5.1.2
Dokumentacja
Samouczki i inne informacje o ASP.NET MVC 5.1 RTM są dostępne w witrynie internetowej ASP.NET ( https://www.asp.net).
Nowe funkcje w ASP.NET MVC 5.1
Ulepszenia routingu atrybutów
Routing atrybutów obsługuje teraz ograniczenia, umożliwiając wybór tras opartych na wersji i nagłówku. Wiele aspektów tras atrybutów można teraz dostosowywać za pośrednictwem interfejsu IDirectRouteFactory
i RouteFactoryAttribute
klasy. Prefiks trasy jest teraz rozszerzalny za pośrednictwem interfejsu IRoutePrefix
i RoutePrefixAttribute
klasy.
Obsługa wyliczenia w widokach
- Nowe
@Html.EnumDropDownListFor()
metody pomocnicze. Powinny one być używane jak większość pomocników HTML z zastrzeżeniem, że wyrażenie musi być obliczane na typ wyliczenia lub nullable<T> , gdzieT
jest typem wyliczenia . Użyj poleceniaEnumHelper.IsValidForEnumHelper()
, aby sprawdzić te wymagania. - Nowe
EnumHelper.GetSelectList()
metody, które zwracają wartośćIList<SelectListItem>
. Jest to przydatne, gdy musisz manipulować listą wyboru przed wywołaniem, na przykład ,@Html.DropDownListFor()
lub, gdy chcesz wyświetlić nazwy, które@Html.EnumDropDownListFor()
są wyświetlane.
Poniższy kod przedstawia te interfejsy API.
@if (EnumHelper.IsValidForEnumHelper(ViewData.ModelMetadata))
{
@Html.EnumDropDownListFor(model => model, htmlAttributes: new { @class = "form-control" })
}
@if (EnumHelper.IsValidForEnumHelper(ViewData.ModelMetadata))
{
foreach (SelectListItem item in EnumHelper.GetSelectList(ViewData.ModelMetadata,
(Enum)Model)) { … }
}
Pełny przykład można zobaczyć tutaj.
Obsługa uruchamiania szablonów edytora
Teraz zezwalamy na przekazywanie atrybutów HTML w pliku EditorFor jako obiektu anonimowego.
Na przykład:
@Html.EditorFor(model => model, new { htmlAttributes = new { @class = "form-control" }, })
Niestrudzone sprawdzanie poprawności atrybutów MinLengthAttribute i MaxLengthAttribute
Walidacja po stronie klienta dla typów ciągów i tablic będzie teraz obsługiwana dla właściwości ozdobionych atrybutami MinLength i MaxLength .
Obsługa kontekstu "this" w unobtrusive Ajax
Funkcje wywołania zwrotnego (OnBegin, OnComplete, OnFailure, OnSuccess
) będą teraz mogły zlokalizować element wywołujący this
za pośrednictwem kontekstu. Na przykład:
@Ajax.ActionLink("Click me", "AjaxAction", new AjaxOptions { UpdateTargetId = "foo", OnBegin = "OnClick" })
<script>
function OnClick(jqXHR) {
if ($(this).hasClass("foo")) {
jqXHR.setRequestHeader("custom-header", "value");
}
}
</script>
Znane problemy i zmiany powodujące niezgodność
Routing atrybutów
Niejednoznaczności w dopasowaniach routingu atrybutów będą teraz zgłaszać błąd zamiast wybierać pierwsze dopasowanie.
Trasy atrybutów nie mogą używać parametru {controller}
i używać parametru {action}
w trasach umieszczonych w akcjach. Użycie tych parametrów najprawdopodobniej doprowadziłoby do niejednoznaczności.
Tworzenie szkieletu wzorca MVC/internetowego interfejsu API w projekcie z pakietami 5.1 powoduje utworzenie 5.0 pakietów dla pakietów, które jeszcze nie istnieją w projekcie
Aktualizowanie pakietów NuGet dla ASP.NET MVC 5.1 RTM nie powoduje zaktualizowania narzędzi programu Visual Studio, takich jak tworzenie szkieletu ASP.NET lub szablon projektu aplikacji internetowej ASP.NET. Używają poprzedniej wersji pakietów środowiska uruchomieniowego ASP.NET (5.0.0.0). W rezultacie szkielet ASP.NET zainstaluje poprzednią wersję (5.0.0.0.0) wymaganych pakietów, jeśli nie są jeszcze dostępne w projektach. Jednak szkielet ASP.NET w Visual Studio 2013 RTM lub Update 1 nie zastępuje najnowszych pakietów w projektach. Jeśli używasz szkieletu ASP.NET po zaktualizowaniu pakietów projektów do internetowego interfejsu API 2.1 lub ASP.NET MVC 5.1, upewnij się, że wersje internetowego interfejsu API i ASP.NET MVC są spójne.
Wyróżnianie składni dla widoków Razor w Visual Studio 2013
W przypadku aktualizacji do wersji ASP.NET MVC 5.1 RTM bez aktualizowania Visual Studio 2013 nie będzie można uzyskać obsługi edytora programu Visual Studio na potrzeby wyróżniania składni podczas edytowania widoków Razor. Aby uzyskać tę pomoc techniczną, musisz zaktualizować Visual Studio 2013.
Zmiany nazw typów
Nazwy niektórych typów używanych do rozszerzalności routingu atrybutów są zmieniane w wersji 5.1 RTM.
Stara nazwa typu (5.1 RC) | Nazwa nowego typu (5.1 RTM) |
---|---|
IDirectRouteProvider | IDirectRouteFactory |
RouteProviderAttribute | RouteFactoryAttribute |
Obiekt DirectRouteProviderContext | DirectRouteFactoryContext |