2017-09-11 1 views
1

값 필드에 대해 간단한 "복구"버튼을 만들려고합니다. 어떤 이유로 ViewState에 저장된 문자열이 표시되지 않습니다. 튜토리얼을 따라 가면서 내가 뭘 잘못했는지 알지 못했고 웹에서 대답을 찾았습니다. 많은 사람들이 주된 이슈는 ViewState가 페이지에서 활성화되어 있지 않았기 때문입니다. 나는 그것을 추가했다 (그러나 버튼은 여전히 ​​작동하지 않는다). 코드를 작성하는 방법이나 ViewState를 사용하는 방법에 관해서는 문제를 찾을 수 없었습니다. 도움이 될 것입니다.ViewState가 포스트 백에서 작동하지 않습니다. ASP.NET C#

<%@ Page Title="" Language="C#" EnableViewState="true"/*...*/ 

<asp:TextBox class="form-control" id="usr" runat="server"/> 

<asp:Button Text="Send" ID="buttonSend" runat="server" 
     onclick="buttonSend_Click"/> 
<asp:Button Text="Recover" id="buttonRecover" runat="server" 
     onclick="buttonRecover_Click"/> 

그리고이 Contact.aspx.cs에, 뒤에 코드 :

protected void buttonSend_Click(object sender, EventArgs e) 
{ 
    ViewState["name"] = Request.Form["usr"]; 
    usr.Text=string.Empty; 
} 
protected void buttonRecover_Click(object sender, EventArgs e) 
{ 
    usr.Text = Convert.ToString(ViewState["name"]); 
} 

답변

3

문제가 Request.Form["usr"]입니다

그래서이 내가 Contact.aspx 페이지에있는 것입니다 존재하지 않는다. 컨트롤의 ID는 폼 포스트 키 (입력 컨트롤의 name)와 다릅니다.

그래서 그 중 하나는 감사합니다 .. 문제였다

ViewState["name"] = Request.Form[usr.UniqueID]; 

또는 권장되는 방법

ViewState["name"] = usr.Text; 
+0

옙를 사용합니다. usr.Text로 코드를 변경했습니다. –

관련 문제