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
- Visual Studio 2012: Herunterladen ASP.NET and Web Tools 2013.1 für Visual Studio 2012.
- Visual Studio 2013: Laden Sie Visual Studio 2013 Update 1 herunter. Dieses Update ist zum Bearbeiten ASP.NET MVC 5.1 Razor Views erforderlich.
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
- 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, wobeiT
es sich um einen Enumerationstyp handelt. Verwenden SieEnumHelper.IsValidForEnumHelper()
, um diese Anforderungen zu überprüfen. - Neue
EnumHelper.GetSelectList()
Methoden, die einenIList<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 |
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für