2013-04-17 2 views
6

을 난 클래스 AccountController 있고 내 조회의 asp.net MVC 4 호출 방법 내 컨트롤러에서

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult LogOff() 
{ 
    WebSecurity.Logout(); 
    return RedirectToAction("Index", "Home"); 
} 

를이 방법이있는 내에 난 cshtml 몸 페이지 코드

이 부분을
<form class="float_left" action="Controllers/AccountController" method="post"> 
    <button class="btn btn-inverse" title="Log out" type="submit">Log Off</button> 
</form> 

그리고 이것은 작동하지 않습니다. 누구든지 문제 또는 다른 간단한 해결책을 알고 있습니까?

답변

4

여기에서 작업 방법을 참조하지 않습니다.

action="Controllers/AccountController" 

프레임 워크가 컨트롤러를 찾기 때문에 Controllers/을 지정할 필요가 없습니다. 사실 컨트롤러의 "폴더"개념은 클라이언트/URL/등에서 알려지지 않습니다. 네가 그것을 줄 필요가있는 것은 특정한 행동 방법에 대한 "길"이다.

MVC의 프레임 워크는 컨트롤러가있는 곳을 알고 있기 때문에

, 당신은 필요 해당 컨트롤러에 컨트롤러와 액션 메소드를 말해 :

action="Account/LogOff" 
5

action 속성이 잘못된 컨트롤러 동작을 가리키고 있습니다. 컨트롤러 동작이 LogOff이고 AccountController이 아닙니다.

@using (Html.BeginForm("LogOff", "Account")) 
{ 
    <button class="btn btn-inverse" title="Log out" type="submit">Log Off</button> 
} 
0

은 양식 조치가 아마 /Account/LogOff

< form class="float_left" action="/Account/Logoff" method="post"> 
    <button class="btn btn-inverse" title="Log out" type="submit">Log Off</button> 
</form> 

.cshtml이 퍼팅 시도해야합니다 : 당신은 결코 수동으로 같은 <form> 요소가 구축되지하지만 항상이 목적을 위해 설계 된 HTML 헬퍼를 사용한다 파일 :

@using (Html.BeginForm("LogOff", "Account")) 
{ 
    <button class="btn btn-inverse" title="Log out" type="submit">Log Off</button> 
} 
관련 문제