0

Webフォームルーティングですべてのページのルートを指定する必要があるようです

default.aspxを期待する各ページのnameofurlというパラメーターを使用して、 cms.aspxというページへのデフォルト ルートを使用したい

時々、cms.aspx を 1 つ以上のパラメーターを送信したい場合があります。たとえば、

mydomain.com/cms.apx?nameurl=somevalue

また

mydomain.com/cms.apx?nameurl=somevalue&order=6

私はこのコードを持っていますが、ルーティングにページの名前を伝える必要があるため、解決策ではありません

  routes.MapPageRoute("",
        "pageName/{nameofurl}",
        "~/cms.aspx")

私はこのようなものが欲しい

 routes.MapPageRoute("",
        "?/{nameofurl }",
        "~/cms.aspx")

たまにはこうしてほしい

routes.MapPageRoute("SalesRoute",
    "?/{nameofurl}/{order}",
    "~/cms.aspx");

ページの名前を指定せずにその種のルーティングを実現する方法はありますか?

4

1 に答える 1

0

以下のようなルートを作成できます。

routes.MapPageRoute("Route1","{nameofurl}","~/cms.aspx")
routes.MapPageRoute("Route2","{nameofurl}/{order}","~/cms.aspx")
routes.MapPageRoute("Route3","{nameofurl}/{order}/{abc}","~/cms.aspx")

上記のルートは、2 つまたは 3 つのパラメーターを持つページが他にない場合に機能します。ただし、ルーティングしたいページが他にあり、2 つのパラメーターが渡される場合は、パラメーターの前にハードコーディングされた文字列を指定する必要があります。そうしないと、新しいルートが古いルートを上書きします。

例えば:

routes.MapPageRoute("Route4","{nameofurl}/{order}","~/products.aspx")

上記の場合、Route4 は Route2 をオーバーライドします。したがって、次のようなルートを定義する必要があります。

routes.MapPageRoute("Route4","products/{nameofurl}/{order}","~/products.aspx")

次の URL で、URL ルーティング関連の記事を見つけることができます。

http://karmic-development.blogspot.in/2013/10/url-routing-in-aspnet-web-forms-part-2.html

ありがとうございます。それでは、お元気で、

ムンジャル

于 2013-10-10T07:50:24.067 に答える