Yanıtlar:
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.
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 RouteLink
sü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 ...).
Burada verilen diğer cevaplara ek olarak, RouteLink biraz daha hızlıdır ve yönlendirme tablonuzu değiştirdiğiniz için asla yanlış rotayla eşleşemez.
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!