0

Index.cshtml に次のリンクがあります。

 @Html.ActionLink("Edit", "Edit", new { clientId = item.ClientId ,      overrideId=item.OverrideId})

次のようにルーティングします。

 routes.MapRoute(
          name: "Edit",
           url: "{controller}/{action}/{clientId}/{overrideId}",
          defaults: new { controller = "ClientOverride", action = "Edit", clientId =       UrlParameter.Optional, overrideId = UrlParameter.Optional }
       );

Index から Edit へのリダイレクトが発生すると、次の URL が作成されます。

.../clientoverride/edit/6?overrideId=1

私は次のようなものを期待していますが:

.../clientoverride/edit/6/1

一貫性のない URL が作成されるのはなぜですか? 最後に clientoverride/edit/6/1 があるツリー構造のようにするにはどうすればよいですか?

4

2 に答える 2

0

コントローラーに使用されるすべてのルールの上にこれを置きますclientoverride:-

    routes.MapRoute(
         name: "Edit",
          url: "{controller}/{action}/{clientId}/{overrideId}",
         defaults: new { controller = "ClientOverride", action = "Edit", clientId = UrlParameter.Optional, overrideId = UrlParameter.Optional }
      );

デフォルトのルート マップは、この形式で URL を形成しているためです/clientoverride/edit/6?overrideId=1。したがって、シーケンスを変更すると、問題が解決します。

于 2013-10-23T15:46:50.553 に答える