문제

모든 페이지에 검색 양식이 있으므로 마스터 페이지에 넣습니다. 추가 후 runat=server 그 형태로 이제 나는 runat 서버를 사용하는 다른 형식을 사용할 수 없습니다.)

사람들은 보통이 문제를 어떻게 해결합니까?

한 가지 아이디어는 전체 페이지를 하나의 형태로 둘러싸는 것입니다. runat=server 그러나 하나의 서브 페이지에서만 사용되는 양식 (예 : 연락처)에도 마스터 페이지에 코드가 있어야합니다.

사람들은 보통이 문제를 어떻게 해결합니까?

Thnx

도움이 되었습니까?

해결책

이것은 종종 ASP.NET에서 가장 문제가있는 디자인 결정 중 하나로 간주되었습니다. 당신 이이 한 페이지 당 원칙에 고정되어 있다는 것은 슬픈 일입니다.

여러 양식을 가질 수있는 한 가지 이유는 기본 버튼이 브라우저에서 제출 버튼으로 설정되기 때문입니다. 검색 상자에 입력하고 Enter를 치는 사람은 기본 양식을 제출해서는 안됩니다 (로그인 페이지라고 가정). 그러나 작은 형태의 검색 버튼이 있습니다.

이 작업을 수행하는 가장 쉽고 "표준"방법은 ASP : 패널을 사용하고 DefaultButton 속성을 설정하는 것입니다. 검색 필드와 검색 버튼이 모두 포함 된 부품을 감싸 야합니다.

코딩에 대해 걱정하지 마십시오 <form> 마스터 페이지 내부에서 전체 페이지를 둘러싸고 있습니다. 그것은 일반적인 디자인입니다. 대부분의 서버 컨트롤에는 양식이 필요하므로 단순히 간단히 포함시키지 않겠습니까?

다른 팁

마스터 페이지에서 runat = 서버와 같은 검색 html 양식을 갖도록 제안합니다.

<form action="Search.aspx" method="get">
  <input type="text" name="q" /><input type="submit" />
</form>

사용 방법 = 검색의 URL을 가져갈 가능성이 있습니다. 그런 다음 Search.aspx의 CodeBehind에서 쿼리로 필요한 모든 것을 수행하십시오.

public void Page_Load(object sender)
{
  string q = Context.Request.QueryString["q"];
  /*...*/
}

첫 번째 질문은 왜 여러 runat = "Server"양식을 원합니까?

당신은 여전히없이 양식을 가질 수 있습니다 runat="server" 페이지에서 사용하거나 사용하십시오 PostBackUrl 재산 Button 다른 asp.net 페이지에 게시하려면 컨트롤.

다단계 프로세스에서 데이터를 수집하려면 ASP.NET 마법사 제어를 볼 수 있습니다. Scott Guthrie 's를 참조하십시오. 여기 블로그 게시물.

또는 모든 것을 직접 관리하고 ASP.NET 패널을 사용하거나 이미 언급 한 것을 사용할 수 있습니다. PostBackUrl ASP.NET 페이지에서 다른 페이지로 이동합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top