로켈에서 웹어플리케이션을 돌리면 다음과 같이 랜덤한 포트번호를 확인할 수 있습니다. 그런데 가끔 웹어플리케이션에 붙어서 해야 하는 작업이 있는 경우 매번 달라지는 포트(물론 보통 프로젝트나 로컬 iis를 다시 시작하지 않으면 같은 포트를 사용합니다.)때문에 귀찮은 작업을 해야 한다는 문제가 있습니다. 이럴 때는 로컬iis의 포트를 고정하면 됩니다! 참고 - 방법: ASP.NET Development Server에 사용할 포트 지정 MSDN의 내용이 4.0기준인데.....언제 업데이트 된건지 내용이 안 맞는 군요 ㅎㅎㅎ 이제는 프로젝트의 속성 > 웹 > 서버 로 들어가서 프로젝트 URL을 지정하면 포트가 고정됩니다. 언제부터 업데이트된건지는 모르겠는데 asp.net 프로젝트를 생성하면 포트를 고정해 주고 ..
요즘 'Html5'를 활용하여 드래그 앤 드롭(Drag and Drop)을 이용하여 파일 업로드를 하고 있습니다. 우리도 구현해 봅시다~ 그냥 'Html5'만 사용하는 건 아니고 제이쿼리(jquery)도 사용합니다. 참고 : codeguru - Uploading Files Using HTML5 Drag-and-Drop and ASP.NET 1. HTML 페이지 작성하기 프로젝트를 생성하고 'FlieUpload.aspx'를 추가합니다. 1-1. html 작성 바디에 'div'로 드래그 앤 드롭 영역을 만들고 아래 버튼을 하나 만듭니다. Drag & Drop files from your machine on this box. Upload Selected Files 1-2. CSS 작성 스타일시트는 만든 드래그..
제목이 좀 이상하긴 한데.... 'GridView'를 그냥 사용하면 다음과 같이 컬럼까지 'tbody'에 출력 되게 됩니다. 예전에야 그냥 해더스타일(HeaderStyle)에 스타일클래스(CssClass)속성을 지정해서 사용하는 방법이나 그리드뷰(GridView)에 스타일클래스(CssClass) 속성을 지정하여 해결했습니다. 문제는 다양한 프론트엔드툴같은 것들이 유행되면서 UI작업이 생산성이 향상 되고 이로 인해 표준을 얼마나 잘 지켜서 코드를 만드느냐가 중요해졌습니다. Asp.net의 경우 웹콘트롤(WebControls)에서 생성되는 코드도 많다 보니 표준에 맞지 않는 코드가 생성되는 경우가 생기기 시작했다는 것이죠. 그리드뷰의 'thead'문제도 이런 문제입니다. 테이블 태그를 사용하면 'thead'..
asp.net 의 2010버전인가 까지는 'global.asax'를 생성하면 메소드들을 미리 생성해 줬는데 이제는 안그렇습니다. 이게 버전업데이트가 되면서 그렇게 된건지 알 수 없지만 불편한 것이 UI지원도 없고(예전엔 있었던거 같은데;;) 자동완성도 안되는데 MSDN을 뒤저봐도 이벤트 자체에 대한 내용이 없습니다-_-;;;; 겨우겨우 찾은것이 "'global.asax'는 'Application_event 패턴'을 사용합니다." 이 문구 뿐-_-;;;;;;;;; '뭔 소리인가?' 하고 다시 읽어 보니.... 아.... 0. Application_event 패턴 'Application_event 패턴'이라는 것이 정확하게 무엇을 의미하는 지는 모르겠습니다. 단지 지원되는 이벤트의 앞에 'Applicatio..
매번 검색하는게 귀찬아서 정리합니다. 1. HttpRequest.Url asp.net에서 대부분의 지금 접속한 Url에 관한 작업은 'Request.Url'에서 합니다. 'Request.Url'는 'HttpRequest.Url'로 되어 있고 'HttpRequest.Url'는 'System.Url'에 속해 있습니다. 2. 'HttpRequest.Url'로 얻을 수 있는 정보 이 정보는 MSDN의 내용을 정리 한 것입니다. (참고 : Uri 클래스) 테스트 url은 다음과 같습니다. http://localhost:16515/UrlData/frmUrlData.aspx 속성 결과 설명 AbsolutePath /UrlData/frmUrlData.aspx URI의 절대 경로를 가져옵니다. AbsoluteUri ht..
웹폼에서사용했던 안 보이는 버튼을 이용한 비하인드 함수 호출을 'ASP.NET MVC'에서도 사용할 수 있습니다. (참고 : [ASP.Net] 자바스크립트에서 비하인드 호출하기) 그런데 MS가 'ajax.net'을 포기하는 뉘앙스인 데다 MVC에서는 'ajax.net'를 사용하는데 번거로운 편이라 그냥 제이쿼리(JQuery)의 아작스(ajax)기능을 이용하여 비하인드 함수를 호출해 보겠습니다. 0. 테스트용 코드 테스트를 위해 HTML코드를 다음과 같이 작성합니다. 이렇게 코드를 작성했다면 다음과 같이 동작합니다. 비하인드 코드는 다음과 같이 작성합니다. [HttpPost] public JsonResult AjaxCall(string sData) { return Json(new { sReturn = "M..
아작스의 기원은 특정영역만 갱신하는 것이기 때문에 아작스영역안에서 포스백이 일어나면 '부분 포스트백'이라고 부릅니다. 당연히 페이지 포스트백은 일어나지 않을 것이라고 생각했습니다. 그런데 아니네요 ㅡ,.ㅡ; (참고 : MSDN Magazine - AJAX 응용 프로그램 아키텍처, 1부 ) 1. 문제 발견하기 아작스영역안에 버튼을 넣고 눌러 봅시다. 중단점을 잡아보면 페이지 로드에서 중단점이 잡힙니다. 신기하게도 페이지의 UI는 갱신이 되지 않네요 ㅡ.ㅡ;; 이 이야기는 업데이트페널이 각자 돌아간다고 생각하고 있는 우리의 상식을 벗어납니다. 1-1. 테스트용 코드 테스트를 위해서 '웹응용프로그램'프로젝트를 생성하고 웹폼을 추가 합니다. 그리고 아래 코드를 넣습니다. 페이지 Ajax1 Ajax2 비하인드는 ..
일반적인 응용프로그램을 만들 때 콘솔에 값을 출력하여 값을 확인하는 경우는 흔합니다. 보통 비주얼 스튜디오에서는 '보기 > 출력'을 통해서 확인합니다. 1. 'ASP.NET'에서 콘솔 출력하기 ASP.NET에서는 'System.Diagnostics'를 이용하여 출력해야 합니다. (참고 : MSDN - 연습: ASP.NET 추적을 System.Diagnostics 추적과 통합) System.Diagnostics.Trace.WriteLine("[출력할 내용]"); 2. 일반적인 .NET 응용프로그램의 경우 보통 응용프로그램을 만들면 그냥 'Console'을 이용하면 됩니다. Console.WriteLine([내용]); 마무리 ASP.NET에서는 콘솔출력을 하면 아무런 내용이 나오지 않습니다. 검색해보니 응용..
이전 글에서 뷰 엔진에서 모델의 특정 속성을 가지고 오는 방법을 알려 드렸습니다. (참고 : [Asp.net MVC 4] 뷰 엔진에서 모델(Model)의 속성(Attribute) 표시하기 ) 그런데 'HtmlHelper'는 컨트롤러에서 사용할 수 없다고 했습니다. 결국 컨트롤러에서 해당 메서드를 사용하고 싶다면 'HtmlHelper'를 빼고 동작하는 메서드가 있어야 합니다. 1. 확장메서드 복습하기 전글에서 사용한 코드를 다시한번 보죠. using System.Linq.Expressions; namespace System.Web.Mvc.Html { public static class DisplayDescriptionExtensions { public static string GetDescription(t..
'레이저(Razor)'같은 뷰엔진에서 몇몇 속성은 이미 만들어져 있는 메서드를 가지고 출력이 가능합니다. 대표적인 메서드가 '@Html.DisplayNameFor'나 ''@Html.ValidationMessageFor같은 것들입니다. 문제는 정된 메서드만으로는 모든 속성을 표시할 수 없다는 점입니다. 1. 문제의 시작 다음과 같이 모델을 선언합시다. /// /// 단어 /// [DisplayName("단어")] [Required(ErrorMessage = "단어를 적어 주세요.")] [Display(Description = "문제로 쓰일 단어 입니다.")] public string Word { get; set; } 위 코드를 뷰로 보내서 바인딩한다면 '@Html.DisplayNameFor'를 사용하면 '..