2010-07-06 8 views
3

나는 어느 것이 더 낫지 혼란 스럽다.항상 ASP 제어를 사용하는 것이 더 좋습니까?

ASPX :

<asp:HyperLink ID="HyperLink1" runat="server">HyperLink</asp:HyperLink> 

코드 :

String url = "http://stackoverflow.com"; 
if(IsShow) 
{ 
    HyperLink1.Visible = true; 
    HyperLink1.NavigateUrl = url; 
} 

와 두 번째 옵션은 다음과 정확히 동일한 기능을 수행하는

<%if(IsShow){%> 
<a href="<%=url%>">HyperLink</a> 
<%}%> 

이 두 가지 방법.

어느 것이 더 낫습니까? 그 이유는 무엇입니까?

답변

4

그것은 당신이 붙여 넣은 코드가 유효하지만 (첫 번째가 바람직하고 가독성을 위해 주로이다 -. 둘째 당신이 당신의 논리를 수행하는 스크립트 태그에 싸서 기능 (예를 Page_Load)를 지정해야합니다

두 번째 메서드는 Page_PreRender에서 실행되므로 페이지 수명주기의 마지막 단계에서 논리를 수행하여 제한됩니다. 코드 숨김 모델이 없으므로 ASP.NET MVC에서 프로그래밍 할 때이 메서드가 표시됩니다 (코드 숨김 모델이 없음).

ASP.NET MVC의 두 번째 Web Forms에서 첫 번째 메서드를 사용하십시오.

+0

하지만 링크를 수정해야하는 경우 첫 번째 옵션은 집계되다. 두 번째 옵션은 컴파일 할 필요가 없습니다. 이것은 내가 즉시 반응 할 수 있다는 것을 의미합니다. 그렇지 않습니까? –

+0

ASP.NET 컨트롤은 일반적으로 컨트롤의 인스턴스를 만들어야하기 때문에 더 많은 서버 리소스를 사용합니다. 개인적으로 나는 ASP.NET 컨트롤을 사용하거나 일반 HTML runat = "server"만 사용하지 않습니다. – airmanx86

+0

여전히 컴파일해야합니다. "IsShow"및 "url"속성은 서버 속성입니다. 페이지 수명주기가 시작되어 모든 페이지 속성이 평가됩니다. 이 예제에서는 어떤 서버 코드도 필요 없다. URL과 IsShow를 (RegisterClientSideScript를 사용하여) 변수로 클라이언트에 렌더링하고 일반 HTML 앵커 태그 내에서 사용하십시오. – RPM1984

관련 문제