이것은 정확히 Fermat의 마지막 정리는 아니지만 대학에서 제공하는 무료 전화 요금 청구서처럼 나를 귀찮게합니다. 때로는 포스트 백을 발생시키지 않는 HyperLink
을 생성하기를 원하므로 대상 URL을 #으로 지정합니다. 마크 업이 하위 폴더의 UserControl에서 발생하면NavigateUrl = "#"는 href = "SubFolder/#"가됩니까?
/
|- Home.aspx (uses UC.ascx)
|- Sub
|- UC.ascx
과 같이 URL이 상대 경로로 다시 작성됩니다.
<asp:HyperLink runat="server" NavigateUrl="#" >Click Me!</asp:HyperLink>
은, 불행하게도, 잘못
<a href="SubFolder/#">Click Me!</a>
된다. 분명히 나는 서버 컨트롤을 사용하지 않음으로써이 문제를 해결할 수 있지만 바보 같다. 피할 수 있습니까?
요점은 jQuery 또는 코드 숨김으로 클릭 이벤트를 추가하고 다시 게시를 원하지 않는다는 것입니다. 그러나 CSS 이유로 하이퍼 링크가되기를 원합니다.
이벤트 객체를 사용하여 탐색을 취소 할 수 있습니다. 함수 (e) {e.preventDefault(); }. jQuery를 사용하여 일부 이벤트를 바인딩하려는 경우 서버 컨트롤을 사용할 필요가 없습니다. – BrunoLM
이 특별한 경우 서버의 로직이 링크의 가시성과 자바 스크립트 이벤트의 특정 코드를 제어합니다. 이 물론 주위에 방법이 있습니다 (예 : 난 그냥 자리 표시 자에 포장, 그리고 마크 업에서 클릭 이벤트를 정의하는 <% %> 마크 업을 사용)하지만 바보 같은 일들 중 하나를 할 필요가있을 것입니다 탐색을 방지하기 위해 자바 스크립트를 사용하여 , 그리고/또는 서버 컨트롤을 사용하지 않음) 제대로 작동하는 서버 컨트롤로 훨씬 더 우아하게 처리 할 수있는 기본적인 작업을 수행하십시오. –