MVC 3シリーズを好きになる~手動でルーティングテーブルにデータを投げて、現在のURLルーティングペアに影響しません

1930 ワード

カタログに戻る
前に言います:
MVC 3を使ってプロジェクトを開発する時、あなたはSEOのために最適化して、だからきっと自分でURLの書き換えの仕事をして、MVCはとてもこれらの機能を提供して、私達は持ってきて使うことができて、最適化の後のURLは一般的にhttp://www.bobo.com/home/detail/166.shtml ああ、ここの166は事実上パラメータで、もとは?後のRequest.QueryStringに収録されているキー値ペアですが、URL書き換えを行った後、URIはありませんか?このパラメータは、代わりに新しいファイル名で、もちろん爬虫類に見つかるのに役立ちます.ほほほ.
質問:
一つの問題は、URLをルーティングした後、QueryStringにはもちろんあなたの情報を収録することはできませんが、control、action、およびすべてのパラメータがRouteDataに格納されています.一般的には、ここの情報は前のページのhrefを通じて伝達されていることを知っています.これは正常ですが、前のページが伝わらない場合、あるいは、私たちが要求する情報は本actionでしか確実にできません.どうすればいいですか.
後に書く:
この時、私たちは手動でactionの中でRouteDataにデータを投げる必要があります.ほほほ!
前ページ=』本ページAction=>viewレンダリング=』ViewPageページ出力
手動でRouteDataを書く作業は、viewレンダリングの前にActionを行ってから実行されるので、RouteDataに情報を書くことは現在のURLアドレスに影響しません.
RouteDataを書く操作が簡単になりました.コードを見てください.
1  
2  this.RouteData.Values.Add("ObjID", model.ObjID);
3                 //         ,      URL      ,     
4   this.RouteData.Values.Add("TopicFlag", model.TopicFlag);

OK、私達は情報をデータベースの中から読んだ後に、更にRouteDataに投げて、いつもviewがレンダリングした後にページの上で出力して、もちろんページの上でObjIDを使うならば、直接
Requestオブジェクトから読みました!
  カタログに戻る