为了账号安全,请及时绑定邮箱和手机立即绑定

如何在ASP.NETMVC中模拟Server.Transfer?

如何在ASP.NETMVC中模拟Server.Transfer?

慕斯709654 2019-07-05 12:59:53
如何在ASP.NETMVC中模拟Server.Transfer?在ASP.NETMVC中,可以很容易地返回重定向ActionResult: return RedirectToAction("Index");  or  return RedirectToRoute(new { controller = "home", version = Math.Random() * 10 });这实际上会给出一个HTTP重定向,这通常是很好的。然而,当使用Google分析时,这会引起很大的问题,因为原来的推荐人丢失了,所以Google不知道你来自哪里。这会丢失有用的信息,如任何搜索引擎术语。顺便提一句,这种方法的优点是删除了可能来自运动的任何参数,但仍然允许我捕获服务器端的参数。如果把它们放在查询字符串中,人们就会出现书签、推特或博客链接,而这是他们不应该看到的。我见过好几次,人们在Twitter上链接到包含活动ID的网站。无论如何,我写了一个‘网关’控制器,所有进入网站访问,我可以重定向到不同的地方或替代版本。目前,我更关心谷歌(而不是偶然的书签),我希望能够派人访问。/如果他们去的话,他们会得到的那一页/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 回答

  • 3 回答
  • 0 关注
  • 448 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信