Sdílet prostřednictvím


Novinky v ASP.NET MVC 5.1

od Microsoftu

Toto téma popisuje novinky ASP.NET Web MVC 5.1.

Požadavky na software

Stáhnout

Funkce modulu runtime se vydávají jako balíčky NuGet v galerii NuGet. Všechny balíčky modulu runtime se řídí specifikací sémantické správy verzí . Nejnovější balíček ASP.NET MVC 5.1 RTM má následující verzi: 5.1.2. Tyto balíčky můžete nainstalovat nebo aktualizovat prostřednictvím nuGetu. Tato verze obsahuje také odpovídající lokalizované balíčky na NuGetu.

Vydané balíčky NuGet můžete nainstalovat nebo aktualizovat pomocí konzoly Správce balíčků NuGet:

Install-Package Microsoft.AspNet.Mvc -Version 5.1.2

Dokumentace

Kurzy a další informace o ASP.NET MVC 5.1 RTM jsou k dispozici na webu ASP.NET ( https://www.asp.net).

Nové funkce v ASP.NET MVC 5.1

Vylepšení směrování atributů

Směrování atributů teď podporuje omezení, která umožňují správu verzí a výběr trasy na základě hlaviček. Mnoho aspektů tras atributů je teď možné přizpůsobit prostřednictvím IDirectRouteFactory rozhraní a RouteFactoryAttribute třídy. Předpona trasy je nyní rozšiřitelná prostřednictvím IRoutePrefix rozhraní a RoutePrefixAttribute třídy .

Podpora výčtu v zobrazeních

  1. Nové @Html.EnumDropDownListFor() pomocné metody. Ty by se měly používat jako většina pomocných rutin HTML s upozorněním, že výraz musí být vyhodnocen jako typ výčtu nebo T> s možnou<hodnotou Null, kde T je typ výčtu. Pomocí příkazu EnumHelper.IsValidForEnumHelper() zkontrolujte tyto požadavky.
  2. Nové EnumHelper.GetSelectList() metody, které vrací .IList<SelectListItem> To je užitečné, když potřebujete před voláním manipulovat se seznamem výběrů, @Html.DropDownListFor()například , nebo když chcete zobrazit jména, která @Html.EnumDropDownListFor() se zobrazují.

Následující kód ukazuje tato rozhraní 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)) { … }
}

Kompletní příklad najdete tady.

Podpora bootstrap pro šablony editoru

Nyní povolujeme předávání atributů HTML v EditorFor jako anonymní objekt.

Příklad:

@Html.EditorFor(model => model, new { htmlAttributes = new { @class = "form-control" }, })

Nenápadné ověřování minLengthAttribute a MaxLengthAttribute

Ověřování na straně klienta pro typy řetězců a polí bude nyní podporováno pro vlastnosti s atributy MinLength a MaxLength .

Podpora kontextu "this" v nenápadné ajax

Funkce zpětného volání (OnBegin, OnComplete, OnFailure, OnSuccess) teď budou moct vyhledat prvek vyvolání prostřednictvím this kontextu. Příklad:

@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>

Známé problémy a zásadní změny

Směrování atributů

Nejednoznačnosti v shodách směrování atributů teď místo výběru první shody hlásí chybu.

Trasy atributů mají zakázáno používat {controller} parametr a parametr {action} u tras umístěných v akcích. Použití těchto parametrů by velmi pravděpodobně vedlo k nejednoznačnostem.

Generováním uživatelského rozhraní MVC/webového rozhraní API do projektu s balíčky 5.1 vznikne balíček 5.0 pro balíčky, které v projektu ještě neexistují.

Aktualizace balíčků NuGet pro ASP.NET MVC 5.1 RTM neaktualizuje nástroje sady Visual Studio, jako je ASP.NET generování nebo šablona projektu ASP.NET Web Application. Používají předchozí verzi balíčků modulu runtime ASP.NET (5.0.0.0). V důsledku toho ASP.NET generování nainstaluje předchozí verzi (5.0.0.0) požadovaných balíčků, pokud ještě nejsou k dispozici ve vašich projektech. ASP.NET generování uživatelského rozhraní v Visual Studio 2013 RTM nebo Update 1 však nepřepíše nejnovější balíčky ve vašich projektech. Pokud používáte ASP.NET generování po aktualizaci balíčků projektů na webové rozhraní API 2.1 nebo ASP.NET MVC 5.1, ujistěte se, že jsou verze webového rozhraní API a ASP.NET MVC konzistentní.

Zvýraznění syntaxe pro zobrazení Razor v Visual Studio 2013

Pokud provedete aktualizaci na ASP.NET MVC 5.1 RTM bez aktualizace Visual Studio 2013, nebudete mít v editoru Visual Studio podporu zvýraznění syntaxe při úpravách zobrazení Razor. Abyste získali tuto podporu, budete muset aktualizovat Visual Studio 2013.

Přejmenování typů

Některé typy používané pro rozšiřitelnost směrování atributů jsou ve verzi 5.1 RTM přejmenovány.

Starý název typu (5.1 RC) Nový název typu (5.1 RTM)
IDirectRouteProvider IDirectRouteFactory
Atribut RouteProviderAttribute Atribut RouteFactoryAttribute
DirectRouteProviderContext DirectRouteFactoryContext