2012-01-28 3 views
0

asp.net에 웹 응용 프로그램을 작성하고 있습니다. ContentPlaceHolder 및 ContentPlaceHolder를 래핑하는 양식이있는 마스터 페이지가 있습니다. , aspx 페이지에서 나는 ContentPlaceHolder를 깨닫고이 페이지에서 몇 가지 컨트롤을 가지고 있습니다.ContentPlaceHolder (양식 오류)와 일치하는 Request.Form.Get valus를 가져올 수 없습니다. ContentPlaceHolder (양식 오류)

이제 Request.Form.Get ("my control name") (aspx behind 코드에서)을 사용할 때 null이 반환됩니다. aspx 페이지에서 양식을 추가하려고하면 페이지에 하나의 양식 만있을 수 있다고하는 오류가 발생합니다.

내 컨트롤에서 값을 어떻게 얻을 수 있습니까 ??

도움 주셔서 감사합니다.

+0

method = post와 같은 양식 태그의 메소드는 무엇입니까? – Saurabh

답변

0

값이 마스터에 있다고 가정하면 마스터와 페이지 사이의 값을 전달하려는 경우 Page.Master를 올바른 유형으로 캐스팅 할 수 있습니다. 마스터 페이지에서 마스터의 컨트롤을 래핑 할 수 있습니다.

페이지에 MasterPage

public string MyControlText 
{ 
    get 
    { 
     return myControl.Text; 
    } 
    set 
    { 
     myControl.Text = value; 
    } 
} 

((MyMasterPage)this.Page.Master).MyControlText = "To master from page"; 

string fromMasterToPage = ((MyMasterPage)this.Page.Master).MyControlText; 
1

Request.Form("YourControlName") ASP.NET이 페이지에 출력하는 컨트롤의 이름으로 몇 가지 여분의 물건을 추가하기 때문에 서버 컨트롤 작동하지 않습니다 . 이 이름은 페이지의 모든 컨트롤에서 고유하게 유지됩니다. 예를 들어, 컨트롤이 실제로 "ctl00_maincontent_placeholder1_YourControlName"과 같은 이름으로 지정 될 수 있습니다.

ASP.NET에서는 일반적으로 컨트롤 값을 가져 오기 위해 Request.Forms를 사용하지 않기 때문에 일반적으로 문제가되지 않습니다. 대신 서버 컨트롤의 메서드를 사용하여 값을 가져옵니다. 따라서 텍스트 상자의 경우 YourControlName.Text을 사용하여 텍스트 상자에 입력 된 값을 가져옵니다.