제22장 모형 귀속

7503 단어 바인딩
모델 바인딩(Model Binding)은 브라우저가 HTTP 요청으로 보낸 데이터로 생성됩니다.NET 객체 프로세스
동작 방법의 매개 변수는 모델 귀속 과정에 의존한다(모델 귀속기를 통해 실현된다).전체 HTTP 요청이 가지고 있는 데이터(사용자가 폼에 입력한 데이터, 루트 데이터, 요청 URL의 조회 문자열, 요청에 올린 파일)를 이용하여 동작 방법에 필요한 매개 변수 대상을 구성하는 과정.
모델 바인딩 프로세스(모델 바인딩기가 수행할 작업):
      1.대상 객체(작성하려는 객체, 동작 방법을 나타내는 매개변수)의 이름과 유형을 체크합니다.(동작 방법 매개변수의 이름 및 유형)
      2.대상 이름으로 데이터 원본(요청)을 찾고 사용 가능한 데이터(일반적으로 문자열)를 찾습니다.(요청 데이터에서 이름이 일치하는 문자열 데이터를 찾습니다)
      3.대상 유형에 따라 찾은 데이터 값을 목표 유형으로 변환하기;(문자열 형식 데이터를 동작 방법 매개 변수로 변환하는 형식)
      4.대상 이름, 대상 유형, 그리고 이런 처리된 데이터를 통해 목표 대상을 구성한다.(상기 데이터를 이용하여 동작 방법의 매개 변수를 구성하는 대상)
      5.구조된 대상을 동작 호출기에 전달하고 동작 호출기에서 대상을 목표 동작 방법에 주입한다.(동작 방법에 대상 객체 전달)
호출기:IactionInvoker
기본 호출기:ControllerActionInvoker
모델 바인더:IModelBinder
기본 모델 바인딩:DefaultModelBinder
요청:Request
요청 데이터: Request.Form、Request.Files、RouteData.Values、Request.QueryString
모델:모델
모델 속성:Model.Name
속성 유형:String
컨트롤러:Controller
작업 방법:Action
동작 매개 변수:ActionParam
매개 변수 유형:string
매개변수 값: "aa"
1. 기본 모델 귀속기
DefaultModelBinder 클래스에서 매개 변수 데이터를 찾는 순서 (찾으면 정지)
데이터 소스
묘사
예제
Request.Form
사용자가 HTML의 양식에 입력한 데이터
Request.Form["id"]
RouteData.values
응용 프로그램 루트로 얻은 값
RouteData.Values["id"]
Request.QueryString
요청 URL에 포함된 쿼리 문자열의 일부 데이터
Request.QueryString["id"]
Request.Files
요청에 업로드된 파일
Request.Files["id"]
    1.복합 유형 바인딩: 동작 방법의 매개 변수가 복합 유형일 경우(TypeConverter 클래스로 변환할 수 없는 속성(단순 유형:string, int....)반사로public 속성 집합을 가져오고 순서대로 귀속합니다.
(1) 쉽게 바인딩할 수 있는 HTML:
      
    <div>@Html.LabelFor(m => m.HomeAddress.City)  
         @Html.EditorFor(m => m.HomeAddress.City)
    </div>
    

좋은 웹페이지 즐겨찾기