【发布时间】:2012-04-10 12:56:35
【问题描述】:
这很奇怪。我说很奇怪,因为在 IE 8 及更高版本(以及 FF)上,我由 Html.ActionLink() 生成的 url 以正确的形式创建了一个 url -> http://mydomain.com/myapp/mycontroller/myaction 但 在 IE 7 和 IE8 上运行在兼容模式下,url 生成为 -> http:///myapp/mycontroller/myaction 。这也会影响使用 Url.Content() 的任何内容。
这是一个令人担忧的问题,因为我有用户仍然坚持使用 IE 7(我也不明白)。另外,我们的 Active Directory 策略为某些(不是全部)用户设置了一些东西,因此 IE 8 被强制进入兼容模式并且无法关闭。它还覆盖了兼容性元标记。
在 MVC 中我应该在这里检查什么?有没有我需要查看的 web.config 设置?
代码: 动作链接:
@Html.ActionLink("My Text", "Action", "Controller", new { Param1 = Model.Param1 }, new { @class = "linkButton" })
Url.Content:
Url.Content("~/Content/openHS.png")
更新: 我在 PHP 中发现了一个类似的项目来处理这个问题:Why can't I use relative URLs with IE7?
网络上的其他几篇文章提到使用<base> 标头标签.. 现在试试这个。使用搜索“相对网址”“Internet Explorer 7”
【问题讨论】:
-
渲染包含Html.ActionLink的页面时,页面源中的URL是什么样的?它看起来像 /Controller/Action 还是 domain/app/controller/action 的形式?
-
显示您的 Html.ActionLink() 的代码我相信您在其中包含域。
-
@Andy: 嗯......两个源(兼容和非兼容模式下的 IE8)都呈现到 /Controller/Action 但浏览器正在解释它,正如我上面所说的。
-
你的
head中有base标签吗? -
更新应该包括基础但我忘记将其标记为代码..现在已修复...对于您的问题:我做了但是它不包括域。我仍在测试我的解决方案,如果它完全有效(包括使用 Javascript)我会发布它。
标签: asp.net-mvc-3 internet-explorer