Способ не рендеринга Ajax.Actionlink, когда пользователь использует IE

У меня следующая проблема. Как вы знаете, т.е. текущие версии не поддерживают функцию pushstate html5. Поэтому я не хочу отображать свой контент с помощью Ajax, когда пользователь - т.е.

Я предполагаю, что лучший способ добиться этого - использовать расширение Ajax helper, которое возвращает ajax.actionlink, когда обнаруженный браузер не является ie, и стандарт (html.routelink), когда браузер пользователя равен ie.

При создании расширения меня запрашивают routeName, который не отображается как свойство...

Я не знаю, сталкивался ли кто-нибудь с этой проблемой и решением, которое вы использовали.

Спасибо

1 ответ

Решение

Способ, которым я наконец-то воспользовался для достижения того, чего хотел, - определить помощника по бритве в представлении. Я знаю, что было бы лучше сделать расширение. Но это было сложно из-за того, что я хотел использовать 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)  
    }
}
Другие вопросы по тегам