Freigeben über


Neue Funktionen in ASP.NET MVC 5.1

von Microsoft

In diesem Thema werden die Neuerungen für ASP.NET Web MVC 5.1 beschrieben.

Softwareanforderungen

Herunterladen

Die Laufzeitfeatures werden als NuGet-Pakete im NuGet-Katalog veröffentlicht. Alle Laufzeitpakete entsprechen der Spezifikation für semantische Versionsverwaltung . Das neueste ASP.NET MVC 5.1 RTM-Paket hat die folgende Version: "5.1.2". Sie können diese Pakete über NuGet installieren oder aktualisieren. Das Release enthält auch entsprechende lokalisierte Pakete auf NuGet.

Sie können die veröffentlichten NuGet-Pakete installieren oder aktualisieren, indem Sie die NuGet-Paket-Manager-Konsole verwenden:

Install-Package Microsoft.AspNet.Mvc -Version 5.1.2

Dokumentation

Tutorials und andere Informationen zu ASP.NET MVC 5.1 RTM finden Sie auf der ASP.NET-Website ( https://www.asp.net).

Neue Features in ASP.NET MVC 5.1

Verbesserungen des Attributroutings

Attributrouting unterstützt jetzt Einschränkungen und ermöglicht die Versionsverwaltung und die headerbasierte Routenauswahl. Viele Aspekte von Attributrouten können jetzt über die Schnittstelle und RouteFactoryAttribute Klasse IDirectRouteFactory angepasst werden. Das Routenpräfix ist jetzt über die Schnittstelle und RoutePrefixAttribute Klasse IRoutePrefix erweiterbar.

Unterstützung von Enumerationen in Ansichten

  1. Neue @Html.EnumDropDownListFor() Hilfsmethoden. Diese sollten wie die meisten HTML-Hilfsprogramme mit dem Vorbehalt verwendet werden, dass der Ausdruck in einen Enumerationstyp oder ein Nullable<T> ausgewertet werden muss, wobei T es sich um einen Enumerationstyp handelt. Verwenden Sie EnumHelper.IsValidForEnumHelper() , um diese Anforderungen zu überprüfen.
  2. Neue EnumHelper.GetSelectList() Methoden, die einen IList<SelectListItem>zurückgeben. Dies ist nützlich, wenn Sie eine Auswahlliste vor dem Aufrufen bearbeiten müssen, @Html.DropDownListFor()z. B. , oder wenn Sie die angezeigten Namen @Html.EnumDropDownListFor() anzeigen möchten.

Der folgende Code zeigt diese APIs.

@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)) { … }
}

Hier sehen Sie ein vollständiges Beispiel.

Bootstrapunterstützung für Editorvorlagen

Wir erlauben nun die Übergabe von HTML-Attributen in EditorFor als anonymes Objekt.

Beispiel:

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

Unauffällige Validierung für MinLengthAttribute und MaxLengthAttribute

Die clientseitige Überprüfung für Zeichenfolgen- und Arraytypen wird jetzt für Eigenschaften unterstützt, die mit den Attributen MinLength und MaxLength versehen sind.

Unterstützung des "this"-Kontexts in Unauffälligen Ajax

Die Rückruffunktionen (OnBegin, OnComplete, OnFailure, OnSuccess) können nun das aufrufende Element über den this Kontext finden. Beispiel:

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

Bekannte Probleme und wichtige Änderungen

Attributrouting

Mehrdeutigkeiten bei Attributrouting-Übereinstimmungen melden nun einen Fehler, anstatt die erste Übereinstimmung auszuwählen.

Attributrouten ist es untersagt, den {controller} -Parameter und den -Parameter für Routen zu verwenden, die {action} für Aktionen platziert werden. Die Verwendung dieser Parameter würde sehr wahrscheinlich zu Mehrdeutigkeiten führen.

Das Gerüstieren der MVC/Web-API in ein Projekt mit 5.1-Paketen führt zu 5.0-Paketen für Pakete, die noch nicht im Projekt vorhanden sind

Durch das Aktualisieren von NuGet-Paketen für ASP.NET MVC 5.1 RTM werden die Visual Studio-Tools wie ASP.NET Gerüstbau oder die Projektvorlage ASP.NET Webanwendung nicht aktualisiert. Sie verwenden die vorherige Version der ASP.NET Runtimepakete (5.0.0.0). Daher installiert das ASP.NET Gerüstbau die vorherige Version (5.0.0.0) der erforderlichen Pakete, sofern diese nicht bereits in Ihren Projekten verfügbar sind. Das ASP.NET Gerüstbau in Visual Studio 2013 RTM oder Update 1 überschreibt jedoch nicht die neuesten Pakete in Ihren Projekten. Wenn Sie ASP.NET Gerüstbau verwenden, nachdem Sie die Pakete Ihrer Projekte auf Web-API 2.1 oder ASP.NET MVC 5.1 aktualisiert haben, stellen Sie sicher, dass die Versionen von Web-API und ASP.NET MVC konsistent sind.

Syntaxmarkierung für Razor-Ansichten in Visual Studio 2013

Wenn Sie auf ASP.NET MVC 5.1 RTM aktualisieren, ohne Visual Studio 2013 zu aktualisieren, erhalten Sie beim Bearbeiten der Razor-Ansichten keine Unterstützung des Visual Studio-Editors für die Syntaxheraushebung. Sie müssen Visual Studio 2013 aktualisieren, um diesen Support zu erhalten.

Typbenennungen

Einige der Typen, die für die Erweiterbarkeit des Attributroutings verwendet werden, werden in 5.1 RTM umbenannt.

Alter Typname (5.1 RC) Neuer Typname (5.1 RTM)
IDirectRouteProvider IDirectRouteFactory
RouteProviderAttribute RouteFactoryAttribute
DirectRouteProviderContext DirectRouteFactoryContext