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 によって与えられるデフォルト アクションを起動しますか? ありがとう