【问题标题】:Internet Explorer 7 + MVC 3 = bad urls?Internet Explorer 7 + MVC 3 = 错误的网址?
【发布时间】: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


【解决方案1】:

这行得通。我在 WinXP 模式下测试了 IE 8 的兼容模式以及 Internet Explorer 8 IE 7 模式、IE 9、IE9 Compat、FF 11。对我现有的 JavaScript 没有任何伤害

对于剃刀:

@{
     string baseHref;

     if(this.Request.Browser.Type == "IE7" && !this.Request.UserAgent.Contains("Trident/5.0"))
     {
          baseHref = this.Request.Url.Scheme + "://" + this.Request.Url.Authority + Url.Content("~");
     }
     else 
     {
          baseHref = Url.Content("~");
     }
}

然后在<head>的顶部:

<meta http-equiv="X-UA-Compatible" content="IE=9;IE=8;" />
<meta charset="utf-8" />
<base href="@(baseHref)"/>

对上述的一种解释:Trident/5.0 是 IE 9 的兼容引擎,似乎允许 IE9 根据页面域而不是基础来解释相对链接。如果您愿意,我相信您可以删除 Razor 代码。这对我来说是一个兼容性补丁。

【讨论】:

    猜你喜欢
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多