Почему запрос этой формы не работает? - PullRequest
3 голосов
/ 29 декабря 2011

У меня есть простая форма входа в систему, которую я хочу опубликовать в 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 был запрещен и он был перенаправленстраница входа.

Ответы [ 3 ]

1 голос
/ 29 декабря 2011

В моем Web.Config у меня было loginUrl="~/Login", и оно должно было быть "~/Login/Index".Поскольку анонимный доступ запрещен, любой URL, отличный от указанного в loginURL, запрещается и перенаправляет обратно на страницу входа.

0 голосов
/ 29 декабря 2011

попробуйте добавить [HttpGet] к первому методу

0 голосов
/ 29 декабря 2011

"/ Login / Index" и "/ Login / Index /" являются различными действиями.Если вы уберете этот трейлинг /, он может работать так, как вы ожидали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...