2011-05-03 7 views
0

요청 양식 변수에 액세스 할 수 없습니다. 아래는 aspx 코드의 스 니펫입니다.양식 제출시 ASP.NET에서 양식 변수에 액세스 할 수 없습니다.

<form id="mainmasterform" runat="server"> 
    <table align="center"> 
    <tr> 
     <td><label for="ownfname">First Name</label></td> 
     <td><asp:TextBox id="ownfname" runat="server" TextMode="SingleLine"/></td> 
    </tr> 
    <tr> 
     <td><label for="ownlname">Last Name</label></td> 
     <td><asp:TextBox id="ownlname" runat="server" TextMode="SingleLine"/></td> 
    </tr> 
    <tr> 
     <td colspan="2"> 
      <asp:Button ID="submitowner" runat="server" Text="Submit" onclick="modifyDetails" /> 
     </td> 
    </tr> 
</form> 

버튼의 onclick은 Request.Form 객체를 사용하여 양식 변수에 액세스하려고하는 서버 메소드 "modifyDetails"를 호출합니다.

문자열 fname과 lname은 항상 null입니다. 여기서 잘못된 점을 이해할 수 없으므로 도와주세요.

답변

2

시도?

protected void modifyDetails(object sender, EventArgs e) { 
    string fname = ownfname.Text; 
    string lname = ownlname.Text; 
} 

ASP.NET이 작동하도록 설계되었습니다.

+0

주어진 코드를 적용한 후 작업을 시작했습니다. 그러나 Request.Form [ "Something"] 및 "Something.Text"를 언제 사용할 수 있는지 이해할 수 없습니까? 아무도 설명 할 수 있습니까 – VGNU

+0

정상적인 상황에서는 ASP.NET에서 Request.Form [ "Something"]'을 사용하지 않을 것입니다. ASP.NET은 위에 게시 한 구문을 사용하여 게시 값을 참조하도록 설계되었습니다. –

+0

문자열 fname = ownfname.Text를 사용하면 값이 표시되지만 이전 값이 표시됩니다. 예를 들어 웹 페이지가 "ownfname"내의 텍스트가 "Robert"로 렌더링 된 다음 "David"로 수정 한 다음 제출 버튼을 클릭하면됩니다. "ownfname.Text"속성에 대한 액세스를 제출 한 후에도 "David"가 아닌 "Robert"가 제공됩니다. 데이터 양식 수정을 작성 중입니다. 내가 여기서 뭔가를 놓치고 있니? – VGNU

0

이 왜 그냥 다음을 수행하지

string fname = ownfname.Text 
string lname = ownlname.Text 
1

<asp: 컨트롤을 사용하지 말고 (대신 일반 HTML 컨트롤 사용) ClientIDMode 속성을 static으로 설정하십시오. Documentation here

+0

+1 - 일반 HTML 컨트롤을 사용합니다. –

관련 문제