2010-03-16 5 views
0

로그인 페이지가있는 LoginContent.aspx 하위 페이지가 있습니다. 사용자가 로그인하면 Welcome.aspx 페이지로 리디렉션되어야합니다. 그러나 로그인 버튼을 누르면 페이지가 다시로드되고 아무런 반응이 없습니다. 이 페이지의 코드 숨김이 비어 있습니다. LoginContent.aspx와 Welcome.aspx는 모두 동일한 마스터 페이지의 하위 폼입니다.html 로그인 양식이 작동하지 않습니다.

<form method="post" action="~/Welcome.aspx"> 
    Username: <input type="text" name="username" size="15" /><br /> 
    Password: <input type="password" name="passwort" size="15" /><br /> 
<input type="submit" value="Login"/></p> 
</form> 

저는 asp.net 로그인 컨트롤을 사용할 수 있지만 더 많은 것을 제어하려고합니다.

답변

1

aspx 페이지 내에 중첩 된 양식을 가질 수 없습니다.

업데이트 :

  1. 제거 : ASP.NET의 웹 양식은 우리가 따라서 작동하게하기 위해, 하나의 aspx 페이지에서 여러 형태를 가질 수 없습니다

    때문에, 다음을 수행 폼 태그

  2. 추가 RUNAT 서버
  3. 입력 서버 측에서 수행 리디렉션

.

Username: <input type="text" name="username" size="15" runat=server /><br/> 
Password: <input type="password" name="passwort" size="15" runat=server /><br/> 
<input type="submit" value="Login" runat=server onclick="submit_onclick" /></p> 

그리고 뒤에있는 코드에서

:이 귀하의 질문에 대답합니다

protected void submit_onclick(object sender, Event e) 
{ 
    // do some auth stuff here 
    Response.Redirect("~/welcome.aspx"); 
} 

희망 ... :)

+0

왜 안 되니? Loginpage가 클라이언트에서 올바르게 렌더링되었으므로 작동하지 않아야합니다. AFAIK aspx 페이지도 사용하는 ASP.NET MVC는 UserControls 대신 html로 빌드합니다. 어떻게 해결할 수 있습니까? 그리고 대신 무엇을 사용해야합니까? – codymanix

+0

asp.net mvc 위의 샘플 코드가 있습니까? 그렇다면 내 진술은 사실이 아닙니다. asp.net webform만이 aspx 페이지 안에 여러 양식을 가질 수 없습니다. – heisthedon

+0

위 코드가 asp.net mvc 인 경우 다음을 시도해 볼 수 있습니까? "~"을 작업 URL에서 제거 하시겠습니까? – heisthedon

0

당신의 LoginContent.aspx에서 <form> 태그가 <form runat="server"> 내에 중첩 된 경우 I 시도 것 서버 쪽 양식 외부에 앉아서 거기에서 작동하는지 확인하십시오.

넷 패널의 HTTP 요청을 Firebug으로 추적 할 수도 있습니다. 실제로 /Welcome.aspx에 HTTP POST 요청을 보내고 있는지 확인할 수 있습니다. 문제가있는 곳을 정확히 찾아내는 데 도움이 될 수 있습니다. 입니다.

+0

내부 양식 태그를 제거하여 외부 양식 태그 만 남겨 둡니다 (마스터 페이지에 있음). 그러나 도움이되지 않았습니다. 방화범에 감사드립니다. Firebug는 제출 결과에 대한 클릭이 Loginpage.aspx에 대한 게시물에 결과를 표시한다고 말합니다. 지금까지는 올바른 것으로서 이벤트가 호출되지 않습니다. – codymanix

+0

* runat = "server"*와 함께 컨트롤을 사용하지 않으면 이벤트가 발생하지 않습니다. Request.Form [ "username"] 및 Request.Form [ "password"]을 사용하여 제출 된 값을 계속 가져올 수 있어야합니다. 하지만 :-) –

+0

runat = "server"를 입력 태그에 넣었지만 작동하지 않습니다. – codymanix

관련 문제