증상 'ASP.NET WebForm'에서 루트를 가르킬때는 물결표(~)를 씁니다. 그런데 'WebForm'에서 물결표가 작동안하는 곳이 있습니다. 일반 적인 경우 일반 적인 경우 서버컨트롤로 바꿔주기만 해도 동작합니다. 속성에 runat="server" 를 추가합니다. 그런데 해결이 안되네??? 클라이언트 컨트롤인 경우 'link' 태그는 'runat="server"'를 붙인다고 서버 컨트롤이 되지 않습니다. 서버 컨트롤로 변황이 가능한 요소가 아니라서 그렇습니다. 이런경우 클라이언트 경로인 슬러쉬(/)를 사용해야 합니다. 슬러쉬를 넣으니 잘됨 마무리 이것은 'ASP.NET WebForm'을 하다보면 가끔 실수 하는 내용입니다 ㅎㅎㅎ 항상 기억해야 되는 것 클라이언트에서 루트 경로는 슬러쉬 : / 서버에..
개인적으로 세션을 엄청 좋아 합니다. 세션은 서버의 메모리에 저장되기 때문에 보안에 좋으면서 데이터 격리가 확실하기 때문에 세션으로 프로그램을 만들면 생각할 건 세션에 내용이 있는지 없는지만 확인하면 되죠. 하지만 서버 메모리를 이용하기 때문에 사용자에 비례하여 메모리 점유율이 올라갑니다. 사용자가 다른 사이트로 넘어가도 세션은 브라우저가 종료되지 않으면 살아있기 때문에 이미 떠나간 손님의 정보도 메모리아 잔뜩 올려놓는 불상사가..... 1. 세션 사용하기 사용법은 간단합니다. Session["[사용할 이름]"] = [넣을값]; Page.Session["[사용할 이름]"] = [넣을값]; int a = Convert.ToInt32( Session["[사용할 이름]"] ); string b = Page.S..
예전에 숨겨진 필드를 이용하여 비하인드로 값을 넘긴 적이 있습니다. (참고 : [ASP.NET] 자바스크립트에서 비하인드로 값 넘기기 ) 이 방법은 구현이 쉽고 클라이언트의 자원을 이용하기 때문에 서버에 부담이 적습니다. 하지만 보안에서는 완전 취약하죠 ㅎㅎㅎㅎ 그리고 문자열만 저장되기 때문에 구조화된 데이터라면 구분자를 이용하여 값을 저장해야 합니다. 하이든 필드는 쿠키보다야 용량이 크겠지만 브라우저나 보안정책에 따라서 크기가 오락가락합니다-_-; 그러니 큰 데이터는 피하는 게 좋습니다. 1. 구현하기 이건 구현이랄 것도 없이 하이든 컨트롤을 디자인에서 추가합니다. 2. 읽고 쓰기 컨트롤이 추가 됬다면 그 다음부터는 일반적인 'ASP.NET Winform'컨트롤처럼 사용하면 됩니다. HiddenFiel..
오븐을 열고 굽거나 마트에서 사다 먹습니다. .... 돌내려 놓으세요 ㅎㅎㅎ 쿠키는 보편적으로 사용하는 데이터를 저장하는 방법입니다. 적은 용량만 저장이 가능하고 보안에 취약하다는 단점이 있지만 로컬에 데이터를 저장할 수 있다는 장점이 있죠 (참고 : 쿠키의 크기 제한, ASP.NET 쿠키 개요) 1. 쿠키 굽기 쿠키쯤이야 쉽게 구울 수 있습니다. Response.Cookies["Test"].Value = "요~"; Response.Cookies["Test"].Expires = DateTime.Now.AddDays(1); 'Expires'로 쿠키의 수명을 지정할 수 있습니다. 쿠키의 수명을 지정하지 않으면 세션과 함께 끝납니다. 2. 쿠키 읽기 이렇게 구운 쿠키는 쉽게 읽을 수 있습니다. string s..
현재 페이지에 있는 값을 다른 페이지에 전달하는 방법 중 겟(get}방식 다음으로 간편한 방법이 포스트(Post)방식입니다. 폼에 값을 실어 보낸다고 생각하시면 됩니다. 1 데이터 보내는 페이지 작성 샘플페이지를 2개 만듭니다. test.aspx post.aspx 시작 페이지에는 다음과 같이 작성합니다. 여기서 주의해야 하는 것이 포스트 방식으로 데이터를 넘길 때는 'name'로만 접근할 수 있습니다. 요즘 웹 표준에서 'name'대신 'id'를 사용할 것을 권장하고 있는 걸 생각하면......좀 그르치요? 'post.aspx'가 목표 페이지입니다. 2 ASP.NET 에서 데이터 받기 'post.aspx'에 레이블을 추가하고 아래와 같이 비하인드 코드를 작성합니다. protected void Page_L..
웹페이지는 기본적으로 단일 패이지기 때문에 다른 페이지와 값을 공유할수 없습니다. 원론적으로 그렇다는 것이고 이것저것 많은 기술들덕분에 그런건 문제가 되지 않지만 말이죠 ㅡ.-;; 페이지간에 데이터를 공유하기위해 사용하는 방법중 가장 간단한것을 꼽자면 Get방식(이하 겟방식)입니다. 그냥 주소에 물음표(?)를 넣고 데이터를 날리면 되죠. http://주소?[값1 ID]=[값1]&[값2 ID]=[값2] 이렇게 간단하게 주소를 이용하여 데이터를 전달할수 있습니다. 값을 받을때는 'Request.QueryString'을 이용하여 받습니다. //Request.QueryString["값1 ID"] int m_nIndex = Convert.ToInt32(Request.QueryString["nIndex"]); 장점..
저번에 다른 글에서 숨겨진 컨트롤을 이용한 비하인드 코드를 호출하는 방법을 알려 드렸습니다. (참고 : [ASP.Net] 자바스크립트에서 비하인드 호출하기) 다른방법으로 스크립트 매니저를 이용한 방법이 있습니다. 1.디자인텍스트 박스 하나와 html버튼을 하나 추가 해줍니다. 그리고 form의 바로 아래에 '도구 상자 > Ajax 확장'에 있는 스크립트 매니저(Script Manager)를 추가 시켜 줍니다. 스크립트매니저의 'EnablePageMethods'속성을 True로 바꿔줍니다. 2.비하인드 코드비하인드 코드는 스태틱(static)으로 공개된 메소드만 사용할수 있습니다. [System.Web.Services.WebMethod] public static string GetDate(string sM..
ASP는 자주 하질 않다 보니 자꾸 쓸 때마다 찾는 게 번거로워서 요번 기회에 정리해둡니다. 1. 자바스크립트 삽입 'response.write'를 이용하여 자바스크립트를 삽입합니다.
asp.net에서는 아작스(ajax)와 관련된 모듈들이 있습니다. 이것들을 Ajax.net이라고 부릅니다. 이 모듈들중 가장 많이 사용되면서도 유용한 업데이트 패널을 간단하게 다뤄보겠습니다. 업데이트 패널은 Ajax의 주요기능인 부분 새로고침의 영역입니다. 1.프로젝트에 추가프로젝트는 ASP.Nat로 생성하시면 됩니다. 도구 모음 > AJAX 확장 에서 스크립매니저(ScriptManager)를 추가합니다. 업데이트패널(UpdatePanel) 2개를 추가하고 각각에 래이블과 버튼을 하나씩 추가 합니다. 여기서 조심해야 할것은 업데이트패널안에 컨트롤을 추가하려면 사이에 추가하셔야 합니다. 업데이트패널을 사용하기위해서는 스크립트매니저가 꼭 먼저 선언이되어 있어야 합니다. 스크립트매니저는 비하인드와 클라이언트를..
일반적인 프로그램에는 '진입점'이라는 것이 있습니다. (보통 메인(main)이라고 많이 부릅니다.) 프로그램이 실행되면 맨 처음 실행되는 것들을 말이죠. 그런데 생각해보면 웹응용프로그램(WebForm)은 어디가 진입점이지? '시작 페이지로 설정'은 무슨 의미인가? 오른쪽 클릭해서 지정하는 시작페이지는 단순히 주소줄에 해당 파일명을 자동으로 입력해주는 효과일 뿐 진입점은 아닙니다. 주소줄에 직접 다른 파일명을 넣으면 거기가 시작 페이지가 되니까요. 이것은 웹 환경의 특성상 각 페이지는 접속했을 때만 유지되기 때문에 그렇습니다. 진짜 시작 지점 그렇다면 웹 응용프로그램은 어디가 진입점이냐? 어렵게 생각할 거 없이 웹서버에 올라가는 시점입니다. 그럼 그 시점은 어디냐? 'Application_Start' 입니..