如何在ASP.NETMVC中模擬Server.Transfer?在ASP.NETMVC中,可以很容易地返回重定向ActionResult: return RedirectToAction("Index");
or
return RedirectToRoute(new { controller = "home", version = Math.Random() * 10 });這實際上會給出一個HTTP重定向,這通常是很好的。然而,當使用Google分析時,這會引起很大的問題,因為原來的推薦人丟失了,所以Google不知道你來自哪里。這會丟失有用的信息,如任何搜索引擎術語。順便提一句,這種方法的優(yōu)點是刪除了可能來自運動的任何參數(shù),但仍然允許我捕獲服務器端的參數(shù)。如果把它們放在查詢字符串中,人們就會出現(xiàn)書簽、推特或博客鏈接,而這是他們不應該看到的。我見過好幾次,人們在Twitter上鏈接到包含活動ID的網(wǎng)站。無論如何,我寫了一個‘網(wǎng)關’控制器,所有進入網(wǎng)站訪問,我可以重定向到不同的地方或替代版本。目前,我更關心谷歌(而不是偶然的書簽),我希望能夠派人訪問。/如果他們?nèi)サ脑?,他們會得到的那一?home/7,這是主頁的第7版。正如我之前所說,如果我這樣做,我就失去了谷歌分析推薦人的能力: return RedirectToAction(new { controller = "home", version = 7 });我真正想要的是 return ServerTransferAction(new { controller = "home", version = 7 });這會讓我在沒有客戶端重定向的情況下看到這個視圖。不過,我不認為這樣的事情存在。目前,我能想到的最好的事情就是復制整個控制器邏輯。HomeController.Index(..)在我的GatewayController.Index行動。這意味著我得搬家'Views/Home'進'Shared'所以它是可以訪問的。一定有更好的辦法嗎?
- 3 回答
- 0 關注
- 483 瀏覽
添加回答
舉報
0/150
提交
取消