Способ не рендеринга 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)
}
}