2009-01-19 25 views
7

Denetleyicimde, bir çift GET eyleminden etkilenen bazı POST eylemleri var. Doğrulama başarısız olduğunda, POST'un geldiği işlemin görünümünü oluşturmak istiyorum. Örneğin:ASPNET MVC: Yönlendiricinin yolunu bulmanın yolu nedir?

~/~/hesaplara mesajlar/devre dışı hesapları - işlemek "index" doğrulama hatası görünümü ~/hesapları/profil mesajları ~/hesap/devre dışı bırakmak için - doğrulama hatası üzerinde işlemek "profil" görünümüne

Referansı (sic) sunucu değişkenlerinden çıkartabilir ve eylemi bulmak için onu ayrıştırabilirim, ancak istediğim şeyi yapan bir şey yapılacağını veya başka birinin bunu yapabileceğimi umduğunu umuyordum beşik

ControllerContext.RouteData özelliğinin, yalnızca geçerli istekle ilgili değil, başvuran (sic) isteği ile ilgili bilgileri olduğu anlaşılıyor ...?

ASP.NET MVC beta'dayım.

+0

Ayrıca HTTP Bağlamı olmadan Rotayı elde etmenin bir yolu olup olmadığını bilmek isterim. –

cevap

2

MVC Contrib, bir yol almak için String üzerinde bir uzantı yöntemi içerir (özellikle, in here). Teorik olarak bu tabii ki, HttpRequest sadece Ancak

RouteData referrer = Request.ReferrerRoute(); 

yapabilirsiniz böylece bir uzantısı yönteminde olduğu kadar tamamlamayı, sen

RouteData referrer = Request.UrlReferrer.PathAndQuery.Route(); 

yapalım ya olur, bu birim test için tasarlanmıştır ve Rhino kullanır oluyor GetRouteData() gerektiren HttpContextBase oluşturmak için mocks. İyi haber şu ki, çok az alay ile kurtulmak gibi görünüyor, bu yüzden HttpContextBase türetilmiş kendi FakeHttpContext sınıfını oluşturmak, Rhino Mocks önlemek mümkün olabilir.

İlgili konular