ASP.NET MVC 5.1 Sürümündeki Yenilikler
Microsoft tarafından
Bu konuda ASP.NET Web MVC 5.1'e yönelik yenilikler açıklanmaktadır.
Yazılım Gereksinimleri
- Visual Studio 2012: Visual Studio 2012 için ASP.NET and Web Tools 2013.1'i indirin.
- Visual Studio 2013: Visual Studio 2013 Güncelleştirme 1'i indirin. Bu güncelleştirme, ASP.NET MVC 5.1 Razor Görünümlerini düzenlemek için gereklidir.
İndir
Çalışma zamanı özellikleri NuGet galerisinde NuGet paketleri olarak yayınlanmaktadır. Tüm çalışma zamanı paketleri AnlamSal Sürüm oluşturma belirtimini izler. En son ASP.NET MVC 5.1 RTM paketi şu sürüme sahiptir: "5.1.2". NuGet aracılığıyla bu paketleri yükleyebilir veya güncelleştirebilirsiniz. Sürüm, NuGet'te karşılık gelen yerelleştirilmiş paketleri de içerir.
NuGet Paket Yöneticisi Konsolu'nu kullanarak yayımlanan NuGet paketlerini yükleyebilir veya güncelleştirebilirsiniz:
Install-Package Microsoft.AspNet.Mvc -Version 5.1.2
Belgeler
ASP.NET MVC 5.1 RTM ile ilgili öğreticiler ve diğer bilgiler ASP.NET web sitesinden ( https://www.asp.net) edinilebilir.
ASP.NET MVC 5.1'deki Yeni Özellikler
Öznitelik yönlendirme geliştirmeleri
Öznitelik yönlendirmesi artık kısıtlamaları destekleyerek sürüm oluşturma ve üst bilgi tabanlı yol seçimini etkinleştirmektedir. Öznitelik yollarının birçok yönü artık arabirim ve RouteFactoryAttribute
sınıf aracılığıyla IDirectRouteFactory
özelleştirilebilir. Yol ön eki artık arabirim ve RoutePrefixAttribute
sınıf aracılığıyla IRoutePrefix
genişletilebilir.
Görünümlerde sabit listesi desteği
- Yeni
@Html.EnumDropDownListFor()
yardımcı yöntemler. Bunlar, ifadenin bir sabit listesi türüne veya null atanabilir<T>T
türüne değerlendirmesi gerektiği uyarısıyla HTML yardımcılarının çoğu gibi kullanılmalıdır. Bu gereksinimleri denetlemek için kullanınEnumHelper.IsValidForEnumHelper()
. - Bir döndüren
IList<SelectListItem>
yeniEnumHelper.GetSelectList()
yöntemler. Bu, aramadan önce seçme listesini işlemeniz gerektiğinde (örneğin,@Html.DropDownListFor()
) veya gösterilen adları@Html.EnumDropDownListFor()
görüntülemek istediğinizde kullanışlıdır.
Aşağıdaki kod bu API'leri gösterir.
@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)) { … }
}
Burada tam bir örnek görebilirsiniz.
Düzenleyici şablonları için Bootstrap desteği
Artık EditorFor'da HTML özniteliklerinin anonim bir nesne olarak geçirilmesine izin veririz.
Örneğin:
@Html.EditorFor(model => model, new { htmlAttributes = new { @class = "form-control" }, })
MinLengthAttribute ve MaxLengthAttribute için engelleyici olmayan doğrulama
Dize ve dizi türleri için istemci tarafı doğrulaması artık MinLength ve MaxLength öznitelikleriyle süslenmiş özellikler için desteklenecektir.
Unobtrusive Ajax'ta 'this' bağlamını destekleme
Geri çağırma işlevleri (OnBegin, OnComplete, OnFailure, OnSuccess
) artık bağlam aracılığıyla this
çağırma öğesini bulabilir. Örneğin:
@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>
Bilinen Sorunlar ve Hataya Neden Olan Değişiklikler
Öznitelik Yönlendirme
Öznitelik yönlendirme eşleşmelerindeki belirsizlikler artık ilk eşleşmeyi seçmek yerine bir hata bildirecektir.
Öznitelik yollarının parametresini ve eylemlere {controller}
yerleştirilen yollarda parametresini {action}
kullanması yasaktır. Bu parametrelerin kullanımı büyük olasılıkla belirsizliklere yol açabilir.
MVC/Web API'sini 5.1 paketli bir projeye iskeleye almak, projede henüz mevcut olmayanlar için 5.0 paketle sonuçlanmıştır
ASP.NET MVC 5.1 RTM için NuGet paketlerinin güncelleştirilmesi, ASP.NET yapı iskelesi veya ASP.NET Web Uygulaması proje şablonu gibi Visual Studio araçlarını güncelleştirmez. ASP.NET çalışma zamanı paketlerinin (5.0.0.0) önceki sürümünü kullanırlar. Sonuç olarak, ASP.NET yapı iskelesi, projelerinizde mevcut değilse gerekli paketlerin önceki sürümünü (5.0.0.0) yükler. Ancak, Visual Studio 2013 RTM veya Güncelleştirme 1'deki ASP.NET yapı iskelesi, projelerinizdeki en son paketlerin üzerine yazılmaz. Projelerinizin paketlerini Web API 2.1 veya ASP.NET MVC 5.1'e güncelleştirdikten sonra ASP.NET yapı iskelesi kullanıyorsanız, Web API'sinin ve ASP.NET MVC sürümlerinin tutarlı olduğundan emin olun.
Visual Studio 2013'da Razor Görünümleri için Söz Dizimi Vurgulama
Visual Studio 2013 güncelleştirmeden ASP.NET MVC 5.1 RTM'ye güncelleştirirseniz, Razor görünümlerini düzenlerken söz dizimi vurgulama için Visual Studio düzenleyicisi desteği alamazsınız. Bu desteği almak için Visual Studio 2013 güncelleştirmeniz gerekir.
Tür Yeniden Adlandırmaları
Öznitelik yönlendirme genişletilebilirliği için kullanılan türlerden bazıları 5.1 RTM'de yeniden adlandırılır.
Eski Tür Adı (5.1 RC) | Yeni Tür Adı (5.1 RTM) |
---|---|
IDirectRouteProvider | IDirectRouteFactory |
RouteProviderAttribute | RouteFactoryAttribute |
DirectRouteProviderContext | DirectRouteFactoryContext |