我有以下问题。如您所知,即当前版本不支持pushstate html5功能。因此,当用户是ie时,我不想用Ajax呈现我的内容。
我认为实现这一目标的最佳方法是使用Ajax帮助程序的扩展,当检测到的浏览器不是ie时返回ajax.actionlink,当用户的浏览器是ie时返回标准(html.routelink)。
在进行扩展时,我被请求使用不显示为属性的routeName ...
我不知道是否有人遇到过这个问题以及您使用过的解决方案。
Thanks¡¡
答案 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)
}
}