私は単純なログインフォームを持っています。ASP.Net MVCに投稿したいと思います。私は、アクションが/ Loginに設定されていれば動作することを発見しました。しかし、 "/ Login/Index"のようなアクション名を書き出すと失敗します。サーバーは302をログインページに戻し、Index()のPOSTバージョンは決して呼び出されません。どうしてこれなの?コントローラこここのフォームのリクエストが機能しないのはなぜですか?
<form action="/Login/Index/" method="post">
<label for="username">Username</label>
<input type="text" id="username" name="username" maxlength="60" />
<label for="password">Password</label>
<input type="password" id="password" name="password" maxlength="20" />
<input type="submit" value="Login" />
</form>
です::
はpublic class LoginController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(string username, string password)
{
return null;
}
}
ここ
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Movie", action = "Index", id = UrlParameter.Optional }
);
が解決Global.asaxの中で定義された唯一のルートだ:ここで
は、HTMLのマイウェブで .Config私はloginUrl = "〜/ Login"を持っていました。 "〜/ Login/Index"にする必要がありました。そうしないと、URLへのアクセスが拒否され、ログインページにリダイレクトされました。
再構築せずにビューを変更した可能性はありますか? –
アクティビティをFirebugのようなクライアント側で監視します。 'method'が' post'の場合はPOSTを実行する必要がありますが、すぐに別のものにリダイレクトされる可能性があります。そこに手がかりがあるかもしれません。 – David
申し訳ありません実際には私はPOSTを取得していますが、サーバーはログインに戻る302と応答します。なぜPOSTのバージョンのIndexは呼び出されないのでしょうか? –