0

次の問題があります。ご存知のように、現在のバージョンは pushstate html5 機能をサポートしていません。そのため、ユーザーが ie.

これを達成する最善の方法は、検出されたブラウザーが ie でない場合は ajax.actionlink を返し、ユーザーのブラウザーが ie の場合は標準 (html.routelink) を返す Ajax ヘルパーの拡張機能を使用することだと思います。

拡張機能を作成するときに、プロパティとして表示されない routeName を要求されます...

誰かがこの問題とあなたが使用した解決策に直面したかどうかはわかりません.

ありがとう

4

1 に答える 1

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)  
    }
}
于 2012-09-27T11:05:37.230 に答える