문제

웹 응용 프로그램을 Preview 3에서 Beta1로 변환했으며 이제 프레임 워크의 새로운 기능을 사용하려고 노력하고 있습니다. 그중 하나는 ModelBinding입니다.

이 특정 상황에서 나는 단순한 유형의 속성의 컨테이너 인 클래스를 만들었습니다. 많은 텍스트 상자가있는 양식을 만들면 프레임 워크 가이 필드로 검색 가방 인스턴스를 채우는 것을 원합니다.

  • 어디서부터 시작합니까? 이 동작이 상자 밖으로 나가거나 Searchbagbinder를 구현합니까? 나는 Imodelbinder를 간단히 살펴 보았지만 머리를 감싸지 못하고 DefaultModelBinder 소스가 나를 더 현명하게 만들지는 않습니다.
  • 이 ModelBindingContext는 무엇입니까?
  • 양식 필드에 어떻게 액세스합니까?
  • 값이 양식에 의해 전달되지 않고 직접 URL을 입력하여 전달되는 경우 어떻게해야합니까?
  • 이것에 대한 최신 정보는 어디에서 찾을 수 있습니까 (대부분의 블로그는 구식입니다). 나는 Phil의 글을 한 번에 읽은 줄 알았지 만 더 이상 그것을 찾지 못하는 것 같습니다.

모든 도움이 감사합니다.

도움이 되었습니까?

해결책

  • 어디서부터 시작합니까? 이 동작이 상자 밖으로 나가거나 Searchbagbinder를 구현합니까? 나는 Imodelbinder를 간단히 살펴 보았지만 머리를 감싸지 못하고 DefaultModelBinder 소스가 나를 더 현명하게 만들지는 않습니다.

상자 밖으로 나왔습니다. Updatemodel 또는 Modelbinder를 사용하여 원하는 것을 달성 할 수 있습니다.

  • 이 ModelBindingContext는 무엇입니까?

여기에는 요청이 모델에 바인딩되기위한 모든 필요한 정보가 포함되어 있습니다. ControlLerContext 및 ActionFilterContext와 유사하게, 기본적으로 ModelBinder의 상태이며, ModelBinder가해야 할 일에 대한 ASP.NET MVC 팀 권장 사항을 따르는 경우 원하는 작업을 수행하는 데 필요한 모든 정보를 포함합니다.

  • 양식 필드에 어떻게 액세스합니까?
context.HttpContext.Request.Forms["myformfield"];

또는

foreach (var field in context.HttpContext.Request.Forms.Keys) {
    var value = context.HttpContext.Request.Forms[field];
}
  • 값이 양식에 의해 전달되지 않고 직접 URL을 입력하여 전달되는 경우 어떻게해야합니까?

양식과 쿼리 스트링을 모두 확인 해야하는 경우 두 컬렉션을 모두 루프하십시오.

foreach (var field in context.HttpContext.Request.Forms.Keys) {
    var value = context.HttpContext.Request.Forms[field];
}
foreach (var field in context.HttpContext.Request.QueryStrings.Keys) {
    var value = context.HttpContext.Request.QueryStrings[field];
}

또는 양식, 쿼리 스트링, 헤더 등을 포함하는 Param을 통해 반복 할 수 있습니다.

foreach (var field in context.HttpContext.Request.Params.Keys) {
    var value = context.HttpContext.Request.Params[field];
}
  • 이*(대부분의 블로그는 구식)에 대한 최신 정보를 어디에서 찾을 수 있습니까? 나는 한 번에 Phill의 게시물을 읽은 줄 알았지 만 더 이상 그것을 찾을 수없는 것 같습니다.

당신은 그것이 바로 그것을 가지고 있습니다. Phil은 ASP.NET MVC의 PM으로 정보를위한 가장 좋은 장소입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top