用户使用IE时不呈现Ajax.Actionlink的方法

时间:2012-09-25 11:13:03

标签: asp.net-mvc html-helper ajaxhelper

我有以下问题。如您所知,即当前版本不支持pushstate html5功能。因此,当用户是ie时,我不想用Ajax呈现我的内容。

我认为实现这一目标的最佳方法是使用Ajax帮助程序的扩展,当检测到的浏览器不是ie时返回ajax.actionlink,当用户的浏览器是ie时返回标准(html.routelink)。

在进行扩展时,我被请求使用不显示为属性的routeName ...

我不知道是否有人遇到过这个问题以及您使用过的解决方案。

Thanks¡¡

1 个答案:

答案 0 :(得分:0)

我最终用于实现我想要的方法是在视图中定义一个剃刀助手。我知道进行扩展会更好。但它很复杂,因为我想同时利用ajaxhelper和htmlhelper ...(所以我被迫确定路线名称和所有东西)

@helper ConditionalLinkIE(string link, string action, string controller, object routeValues, AjaxOptions ajaxOptions)
{         
    if(ViewContext.RequestContext.HttpContext.Request.Browser.Browser.ToString().ToUpper() == "IE")
    {
      @Html.ActionLink(link, action, controller)
    }
    else
    {
      @Ajax.ActionLink(link, action, controller, routeValues, ajaxOptions)  
    }
}