ターゲットページのURL再ルーティングから値を取得しますか?
-
19-08-2019 - |
質問
OK ... URLルーティングが正常に機能するようになりましたが、ターゲットページの値を実際に読み取る方法がわかりません。
ここでの1つの例は、RequestContextからRouteValueオブジェクトを使用することを示しています。現在、これらはすべてSystem.Web.Routing名前空間にありますが、誰もがこれらをMVCにのみ接続しているようです。 RequestContextはどこから来たのですか?
これらのパラメータの読み方???
クエリ文字列も空白です。
TIA! ケビン
解決
これを自分で解決しました... :)
さまざまなことをいじり始め、IHttpHandlerインターフェイスがGetHttpHandlerメソッドにRequestContextを提供しているのを見ました。
それで、ベースページクラスを変更しました(System.Web.UI.Pageと自分のページの間に常にレイヤーを配置し、単に目的のためにBasePageまたは類似の名前を付けます)。そこで、PVBasePageにパブリックプロパティを追加してRequestContextオブジェクトを受け取りました。
public RequestContext RequestContext { get; set; }
次に、ルーティングクラスのコードは次のとおりです。
IHttpHandler IRouteHandler.GetHttpHandler(RequestContext requestContext)
{
// create the page object as my own page...
var page = BuildManager.CreateInstanceFromVirtualPath(VirtualPath
, typeof(PVBasePage)) as PVBasePage;
// pass in the request context
page.RequestContext = requestContext;
// return this page in the form of a IHttpHandler
return page as IHttpHandler;
}
したがって、サンプルコードのように、IHttpHandlerとしてインスタンスを直接作成する代わりに、独自のページとして作成します。リクエストコンテキストプロパティを設定し、IHttpHandlerとして呼び出し元にページを返します。
テスト済みで動作します。 WOO HOO!
これが将来の誰かに役立つことを願っています。
所属していません StackOverflow