2010-08-25 10 views
6

Bir MVC projesinde çalışıyorum ve bunların her ikisini de kullandım. Aralarındaki farkın ne olduğunu merak ediyordum? Birinin diğerinden kullanılması yanlış mı? Anladığım kadarıyla, Url.Content() kullanmalıyım, ancak VirtualPathUtility.ToAbsolute() da çalışıyor gibi görünüyor.VirtualPathUtility.ToAbsolute() VS. Url.Content()

cevap

7

Url.Content(), MVC'nin yardımcı bir yöntemidir. Sanırım yardımcı program sınıflarını tekdüze hale getirmek ve merkezileştirmek.

VirtualPathUtility.ToAbsolute() bir .NET Framework yöntemidir. Belki bir Kontrolör içinde bu dönüşümü yapıyorsanız

+2

Url.Content() sonunda VirtualPathUtility'i çağırır, ancak biraz daha fazlasını yapar. Cevabını düzenlerdim ama kova dolu kodlar göndermem gerekir. ;) – jfar

+0

Açıklamalar için teşekkürler jfar! –

1

yardımcı

Umut MVC tek kaynağını kontrol etmek, biz olurdu kullanıyor ... o zaman ben üzerinde VirtualParthUtility.ToAbsolute() lehine ediyorum Url.Content().

Denetleyici eylemlerini test etmek istediğinizde yarar gelir. Yine de, doğrudan aramak yerine, IPathUtilities arabirimini, canlı uygulama için VirtualPathUtility yöntemlerini kullanan bir uygulama ve bir diğeri de sınama yaparken bir çeşit alay kullanarak tanımlayabilirim.

Doğrudan VirtualPathUtility'i çağırırsanız, o zaman eylem yöntemini test edemezsiniz (HttpContext'in akıllıca bir alay edeceğini düşünebilirdiniz, ancak bunu denedim. yap).

İlgili konular