У меня есть простая форма входа в систему, которую я хочу опубликовать в ASP.Net MVC.Я обнаружил, что если действие установлено на / Login, оно работает.Но если я напишу имя действия, такое как "/ Логин / Индекс", то оно завершится неудачно.Сервер возвращает 302 обратно на страницу входа, и POST-версия Index () никогда не вызывается.Почему это так?
Вот HTML:
<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;
}
}
Вот единственный маршрут, определенный в Global.asax
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Movie", action = "Index", id = UrlParameter.Optional }
);
Решено: В моем Web.Config у меня был loginUrl = "~ / Login", и он должен был быть "~ / Login / Index", в противном случае доступ к URL был запрещен и он был перенаправленстраница входа.