0

わかりました... URL ルーティングは正常に機能しましたが、ターゲット ページの値を実際に読み取る方法がわかりません。

ここでの一例は、RequestContext からの RouteValue オブジェクトの使用を示しています。現在、これらはすべて System.Web.Routing 名前空間にありますが、誰もがこれらを MVC のみに接続しているようです。RequestContext はどこから来たのですか?

これらのパラメータをどのように読み取るのですか???

クエリ文字列も空白です。

ティア!ケビン

4

1 に答える 1

0

これを自分で解決しました...イェーイ!!! :)

いろいろいじり始めたところ、IHttpHandler インターフェイスが RequestContext を GetHttpHandler メソッドに提供していることがわかりました。

そこで、基本ページ クラスを変更しました (私は常に 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 AS として呼び出し元に返します。

テスト済みで動作します。ウーホー!

これが他の誰かに役立つことを願っています。

于 2009-03-17T03:39:02.893 に答える