0

global.asax でルートを変更したので、クエリ文字列を手動で入力すると、値がアドレス バーに保持されます。

 routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Account", action = "LogOn", id = UrlParameter.Optional}   
        );
        routes.MapRoute(
            "OrderId", // Route name
            "{controller}/{action}/{db}", // URL with parameters
            new { controller = "Account", action = "LogOn", db = UrlParameter.Optional}                   );

id パラメータはアプリ全体で次のように使用されるため、ここには 2 つの値があります。

        public ActionResult AddNote(string id)

db パラメータは、ユーザーが別のデータベースに接続したい場合に使用され、クエリ文字列を介して入力され、間違ったユーザー名/パスワードなどの問題が発生した場合に URL に保持されます。

       thesite.com/?db=somedb

アプリは、次のようにアクションが指定されていないフォームを除いて、以前と同じように機能しています。

     @using (Html.BeginForm())

このフォームはクライアントに次のようにレンダリングされます。

 <form method="post" action="/UserTasks/NewOrder/Index">

アクション「/UserTasks/NewOrder/Index」が呼び出されることはありません。エラーも何もありません。元の global.asax は次のようになり、フォームは期待どおりにサーバーにポストバックされます。

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

Home/Index アクションは、Account/LogOn にリダイレクトするだけだったので、Home/Index 呼び出しを削除して、ホームページの Account/Logon に直接移動したのはそのためです。

global.asax でどのような変更を行う必要があるので、アクションが明示的に入力されていないすべてのフォームが、以前のように ASP.Net MVC によって与えられるデフォルト アクションを起動しますか? ありがとう

4

0 に答える 0