ASP.NET MVC'de RouteLink ve ActionLink arasındaki fark nedir?


120

Bence başlık hemen hemen özetliyor:

ASP.NET MVC arasındaki RouteLink()ve ActionLink()arasındaki fark nedir ?

Yani , Görünümünüzde Html.RouteLink()ne zaman kullanıyorsunuz ve ne zaman kullanıyorsunuz Html.ActionLink()?

Yanıtlar:


78

Eylem ve Yolların 1: 1 ilişkisi olması gerekmez.

ActionLink, eylem adına göre ilk eşleşen yolu kullanarak bir eyleme ulaşmak için URL oluşturacaktır.

RouteLink, ada veya yol değerlerine göre belirlenen belirli bir yol için bir URL oluşturacaktır.


Harika bir blog yayını için +1. Gerçekten kullanışlı. Ve çok fazla olasılık olduğunu gösterir. MS çalışanları yalnızca en hızlı olanı uygulamalıdır. Ama insanlar süslü lambda en yavaş olanı kullanmayı tercih ediyor.
Robert Koritnik

hey teşekkürler Ama sanırım bağlantı koptu ulaşılmadı. lütfen bana bağlantıyı tekrar sağlar mısın teşekkürler
user1006544

5
örnekler alabilir miyiz?
MaylorTaylor

67

Aslında, iki yöntemin çıktısı aynıdır, ancak biraz farklı şekillerde üretilir:

Html.ActionLink()ActionLink'leri hızlı bir şekilde oluşturmayı kolaylaştırır ve size nelerin işlendiği üzerinde temel kontrol sağlar. Çok fazla rotanız yoksa veya çok fazla ya da çok spesifik bilgi vermeniz gerekmiyorsa, bu işi iyi yapacaktır.

Html.RouteLink()Yöntem biraz farklı argümanlar alır ve böylece size şeyler işlenme biçimindeki üzerinde biraz daha ayrıntılı denetim sağlar. Senaryom biraz daha karmaşık olduğunda veya daha detaylı bir rota yapım olduğunda bu yöntemi kullanma eğilimindeyim.
Bir örnek, benim (esneklik için), birçok bilgiye izin verecek karmaşık bir yol yerine, hepsi oldukça basit olan birkaç farklı rotaya sahip olduğum yakın tarihli bir projedir. Böylece, aynı Denetleyici için tümü varsayılan bir eylem belirtilmiş dört veya beş yolla sonuçlandırdım. Çoğunlukla RouteLinksürümü kullandım , çünkü bir rota adı belirlediğimde varsayılan parametreler otomatik olarak girildi.

Bunları istediğiniz gibi ve projeniz için anlamlı oldukları şekilde kullanın. Her ikisinin de gerçekten bir ters / olumsuz yanı yoktur (bu başka biriyle eşleşmez ...).



12

RouteLink bir rotanın adını alır, bu nedenle rota adlarınız güvenilir ve oldukça benzersizse, kullanılacak eylem adı değişse bile bu aynı olacaktır. ActionLink bunun yerine belirli bir denetleyicinin belirli bir eylemine bağlanır. Ne tür bir bağlantının peşinde olduğuma bağlı olarak her ikisini de görüşlerimde kullanıyorum!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.