0

デフォルトでは、urlが'mydomain'の場合、コントローラーのホームに移動します。アクション=インデックス。

ただし、インデックスアクションにパラメータがある場合、URLは次のようになります。

mydomain/home/index?name=John

取得したいです:

mydomain?name=John

そのようなURLを作成するために何を定義する必要がありますか?

ありがとう、

ヨセフ

4

2 に答える 2

2

正しいURLは次のとおりです。

http://mydomain.com/?name=John

デフォルトルート設定が与えられると、これはコントローラーでIndexアクションを呼び出し、パラメーターを渡します。Homename

URLに関するリクエストmydomain?name=Johnを考慮する限り、これは整形式のURLには見えません。

于 2012-09-09T14:18:39.457 に答える
1

本当にあなたが欲しいmydomain/home/index?name=Johnmydomain?name=JohnあなたのサイトのあなたのURLとして?

ルーティングエンジンを修正した場合、ルートはとになる可能性がありmydomain/home/index/johnますmydomain/john。これは私にとってはより正しいでしょう。

それはあなたが何をしようとしているのですか?

その場合、ホームコントローラーで名前の文字列パラメーターを受け入れるインデックスアクションがあると仮定すると、global.asaxを変更し、デフォルトルートを変更して、次のように標準のデフォルトルートの下にルートを追加できます。

     routes.MapRoute(
       "Default", // Route name
       "{controller}/{action}/{id}", // URL with parameters
       new { controller = "Home", action = "Index", name= UrlParameter.Optional } // Parameter defaults
     );

     routes.MapRoute(
       "NameOnly", // Route name
       "{name}", // URL with parameters
       new { controller = "Home", action = "Index" } // Parameter defaults
     );

文字列ベースのパラメータはすべてに一致するため、名前のみのルートを下部に配置するようにしてください。したがって、より明示的なパラメータを最初に一致させる必要があります。

于 2012-09-09T15:18:33.930 に答える