带或不带“/”的 MVC3 uri显示不同的反应
这两条路径有什么区别?
http://www.mydomain.com/testmvc3
http://www.mydomain.com/testmvc3/
我将代码放在 HomeController 中:
// GET: /Home/
public ActionResult Index()
{
if (Request.IsAuthenticated)
{
return RedirectToAction("Index", "Member");
}
else
{
return View();
}
}
但只有第二个链接工作正常,但第一个链接仍然显示主页。(即使已通过身份验证)如何使它们具有相同的反应?
What is difference between these two paths?
http://www.mydomain.com/testmvc3
http://www.mydomain.com/testmvc3/
I put the code in HomeController:
// GET: /Home/
public ActionResult Index()
{
if (Request.IsAuthenticated)
{
return RedirectToAction("Index", "Member");
}
else
{
return View();
}
}
But only the second link works fine, but the first one still show the Home page.(even it is authenticated) How to make them have the same react?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我发现问题是由页面缓存引起的。为了避免这个问题,我将代码修改为:
现在它可以工作了。
I found the problem, it was caused by the page cache. To avoid the problem, I modify the code to:
Now it works.
您需要将尾部斜杠保留在正常路由之外,否则表明可能有 url 参数进入操作。
要强制执行此操作,您可能需要检查 MvcCms 中的 cleanurl 过滤器。 源代码
You will want to leave the trailing slash off of a normal route, otherwise it indicates that there may be url parameters coming into the action.
To enforce this you might want to check out the cleanurl filter that is in MvcCms. Source Code