2012-09-25 2 views
0

다음과 같은 문제점이 있습니다. 아시다시피 현재 버전은 pushstate html5 기능을 지원하지 않습니다. 따라서 사용자가 ie 인 경우 Ajax로 내 콘텐츠를 렌더링하고 싶지 않습니다.IE를 사용할 때 Ajax.Actionlink를 렌더링하지 않는 방법

이것을 달성하는 가장 좋은 방법은 감지 된 브라우저가 아닌 경우 ajax.actionlink를 반환하는 Ajax 도우미 확장과 사용자의 브라우저가 표준 (html.routelink) 인 경우입니다. .

속성으로 표시되지 않습니다 나는 routeName를 요청하고 확장을

...

사람이이 문제와 사용한 솔루션을 직면했는지 모르겠어요.

Thanks¡¡

+0

(그래서 경로 이름과 모든 물건을 확인하도록 강요했다) ... 내가 ajaxhelper 동시에 Html 헬퍼를 활용하고 싶어한다는 사실 때문에 복잡했다 ? IE를 탐지하는 방법 또는 IE를 탐지 한 후에해야 할 일은 무엇입니까? – Dpolehonski

+0

Hi Dplehonsky (HttpContext.Request.Browser.Browser) 사용자가 ie 일 때 ajax.actionlink 대신 표준 html.actionlink를 생성하는 가장 좋은 방법은 무엇인지 알고 싶습니다. 당신의 신속성에 감사드립니다. – mcartur

답변

0

나는 마침내 내가 원하는 것을 달성하기 위해 사용되는 방법은 뷰 내에서 면도칼 도우미를 정의하는 것입니다. 확장을하는 것이 더 낫다는 것을 알고 있습니다. 하지만 당신이 알고 싶은 무엇인가

@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) 
    } 
} 
관련 문제