0

自分のサイトの1つが特定のページをモバイルバージョンにリダイレクトできるようにしています。属性の使用法と51degrees.mobiに関するSteveSandersonとShijuVargheseのブログ投稿を読みました。

私がしたいのは、特定のページ、dealer-locator、デバイスがモバイルデバイスの場合は/ mobile/dealer-locatorにリダイレクトすることです。これを実現するために、dealerlocatorコントローラーと必要なビューを使用してエリアを設定しました。コードを直接テストしましたが、正しく機能しているようです。

ユーザーエージェントをiPhone3.0に変更して、実際のデバイスまたはFFからサイトにアクセスすると、/mobileにリダイレクトされます。ページルートをモバイルルートにマッピングする簡単な方法はありますか?

サイトはisapi_rewriteを使用しており、問題のページには/dealer-locatorを/dealerlocatorにマップするルールがあり、dealerlocatorはコントローラーです。

また、フォームの投稿が正しく機能していないように見えるので、今のところうまくいきます。

4

1 に答える 1

0

Shiju Varghese のブログ投稿 (あなたの質問が言及している) から、RedirectMobileDevicesToMobileAreaAttributeクラスのメソッド:

// Override this method if you want to customize the controller/action/parameters to which
// mobile users would be redirected. This lets you redirect users to the mobile equivalent
// of whatever resource they originally requested.
protected virtual RouteValueDictionary GetRedirectionRouteValues(RequestContext requestContext)
{
    return new RouteValueDictionary(new { area = "Mobile", controller = "Home", action = "Index" });
}

これを処理するためにオーバーライドできます。

彼の例では、すべてが に送信されているように見え~/Mobile/Home/Indexますが、リクエストはどこにでも送信できます。彼は、非モバイル ルート用に Global.asax.cs で定義するものと同等の新しいルート テーブルを作成しています。ルート テーブル全体を置き換えるか、既存のルートをループして、モバイルの等価物のみを含むディクショナリを返すことができます。

于 2011-12-29T16:35:24.280 に答える