간단한 로그인 양식이 있습니다. 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/Index"일 필요가 없었습니다. 그렇지 않으면 URL에 대한 액세스가 거부되고 다시 로그인 페이지로 리디렉션되었습니다.
다시 작성하지 않고도보기를 변경할 수 있습니까? –
방화범과 같은 것으로 클라이언트 측 활동을 모니터하십시오. 'method'가'post' 인 경우 POST를 수행해야하지만 즉시 다른 것으로 리디렉션 될 수 있습니다. 거기에 단서가있을 수 있습니다. – David
죄송합니다 실제로 실제로 POST가 표시되지만 서버가 302로 로그인하여 응답합니다. 왜 POST 버전의 Index는 호출되지 않습니까? –