8

新しい Web フォーム (ASP.NET 4.5) プロジェクトを作成し、URL ルーティングを機能させようとしています。

RouteConfig.cs次のようになります。

routes.MapPageRoute("surveyhome", "survey/home", "~/Survey.aspx");
routes.MapPageRoute("surveyquestions", "survey/questions/{q}", "~/Survey.aspx");

次のようなリンクがあります。

<a href="/survey/questions/1">1</a>

ページが正しく読み込まれるSurvey.aspxため、部分的に機能していることはわかっていますが、このコード (そのページの分離コード内) は機能しません。

if (Page.RouteData.Values["q"] != null)
{
    // do something
}

常にヌルです。なんで?

4

4 に答える 4

1

コードをテストしましたが、ASP.NET 4.0 では問題ありません。

次のようにデフォルト値を定義してみてください

routes.MapPageRoute("surveyquestions",
    "survey/questions/{q}", "~/Survey.aspx",
    false,
    new RouteValueDictionary 
        { { "q", String.Empty } });

問題は解決しましたか?

于 2013-06-06T09:04:36.990 に答える
0

Web.config で IIS に登録されている UrlRoutingHandler と UrlRoutingModule が 3.5 バージョンではなく、4.0 バージョンであることを確認してください。これは、ルーティングが機能することを可能にするが、パラメーターがマップされないことを私が考えることができる唯一のものです。

于 2013-06-07T05:56:44.460 に答える
-1

私は同じ問題を抱えていました.web.configの設定セクションの下に以下を追加することでこれを解決しました:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
于 2013-11-28T01:23:31.317 に答える