ASP.NET MVC'de bir yeniden yönlendirme ActionResult'u oldukça kolay bir şekilde döndürebilirsiniz:
return RedirectToAction("Index");
or
return RedirectToRoute(new { controller = "home", version = Math.Random() * 10 });
Bu aslında normalde iyi olan bir HTTP yönlendirmesi verecektir. Ancak, google analytics'i kullanırken bu büyük sorunlara neden olur çünkü orijinal yönlendirici kaybolur, bu nedenle google nereden geldiğinizi bilemez. Bu, herhangi bir arama motoru terimi gibi yararlı bilgileri kaybeder.
Bir yan not olarak, bu yöntemin, kampanyalardan gelmiş olabilecek tüm parametreleri kaldırma avantajı vardır, ancak yine de onları sunucu tarafında yakalamama izin verir. Bunları sorgu dizesinde bırakmak, insanların yer işareti koymasına veya Twitter'da veya blogda yapmaması gereken bir bağlantıyı oluşturmasına yol açar. Bunu, insanların sitemize kampanya kimlikleri içeren twitter bağlantılarını paylaştığı birkaç kez gördüm.
Her neyse, siteye gelen tüm ziyaretler için farklı yerlere veya alternatif sürümlere yönlendirebileceğim bir 'ağ geçidi' denetleyicisi yazıyorum.
Şimdilik Google'ı daha çok önemsiyorum (yanlışlıkla yer işaretlemekten ziyade) ve bir ana sayfanın 7. sürümü olan, /
gitmeleri durumunda alabilecekleri sayfayı ziyaret eden birini gönderebilmek istiyorum /home/7
.
Daha önce de söylediğim gibi Bunu yaparsam, Google'ın yönlendireni analiz etme yeteneğini kaybederim:
return RedirectToAction(new { controller = "home", version = 7 });
Gerçekten istediğim şey
return ServerTransferAction(new { controller = "home", version = 7 });
bu da bana müşteri tarafı yönlendirmesi olmadan bu görünümü sağlayacak. Yine de böyle bir şeyin var olduğunu düşünmüyorum.
Şu anda elde edebilirsiniz en iyi şey için tüm kontrolör mantığı çoğaltmak için HomeController.Index(..)
benim de GatewayController.Index
Eylem. Bu benim taşımak zorunda anlamına 'Views/Home'
içine 'Shared'
erişilebilir oldu. Daha iyi bir yolu olmalı ?? ..
if
ifade bir çözüm için çok cazip olabilir.
RouteBase
koyabilmeniz için alt sınıflandırma yapmanın nesi yanlış if
?
ServerTransferAction
Kopyalamaya çalıştığınız şey tam olarak nedir ? Bu gerçek bir şey mi? (hakkında herhangi bir bilgi bulamadım ... soru için teşekkürler, btw, aşağıdaki cevap mükemmel)