문제

히치없이 MVC 2 어셈블리를 사용하여 MVC 1 응용 프로그램을 실행할 수 있습니까? 나는 일부 타사 도구가 MVC 2에서 물건을 끊었다는 것을 이해하지만 다른 도구를 사용하지 않는다고 가정 해 봅시다.

도움이 되었습니까?

해결책

가 있었다 변화를 깨뜨립니다.

1.0 프로젝트가 2.0에서 실행되기를 원한다면 다른 장소에서 사물을 찾습니다. 따라서 응용 프로그램을 2.0으로 마이그레이션해야합니다..

다음은 '브레이크'(미리보기 2)를 '브레이크'할 수있는 변경 사항은 다음과 같습니다.

미리보기 2

도우미는 이제 반환합니다 MvcHtmlString 물체

ASP.NET 4의 새로운 HTML 인코딩 식 구문을 활용하려면 HTML 헬퍼의 반환 유형이 지금입니다. MvcHtmlString 대신 a string. ASP.NET MVC 2와 ASP.NET 3.5가있는 새로운 도우미를 사용하는 경우 HTML 인코딩 구문을 활용할 수 없습니다. 새로운 구문은 ASP.NET 4에서 ASP.NET MVC 2를 실행할 때만 사용할 수 있습니다.

JsonResult 이제 HTTP 게시물 요청에만 응답합니다

정보 공개 가능성이있는 JSON 납치 공격을 완화하기 위해 기본적으로 JsonResult 클래스는 이제 HTTP에만 응답합니다 POST 요청. Ajax는 a를 반환하는 Call to Action 메소드를받습니다 JsonResult 대신 포스트를 사용하도록 객체를 변경해야합니다. 필요한 경우 새로 설정 하여이 동작을 무시할 수 있습니다. JsonRequestBehavior 의 자산 JsonResult. 잠재적 악용에 대한 자세한 내용은 Phil Haack의 블로그의 블로그 게시물 JSON 납치를 참조하십시오.

모델 및 ModelType 속성 세터가 켜져 있습니다 ModelBindingContext 쓸모 없다

새로운 정착 가능 ModelMetadata 속성이 The에 추가되었습니다 ModelBindingContext 수업. 새로운 속성은 모델과 ModelType 속성. 비록 Model 그리고 ModelType 속성은 쓸모가 없으며, 후진 호환성을 위해 속성 getters는 여전히 작동합니다. 그들은 ModelMetadata 값을 검색하는 속성.

미리보기의 변경 1

DefaultControllerFactory 클래스 변경은 그로부터 파생 된 커스텀 컨트롤러 공장을 중단합니다.

이 변경은 파생 된 사용자 정의 컨트롤러 공장에 영향을 미칩니다 DefaultControllerFactory . DefaultControllerFactory 클래스는 제거하여 수정되었습니다 RequestContext 속성 및 대신 요청 컨텍스트 인스턴스를 보호 된 가상 방법으로 전달합니다. GetControllerInstance 그리고 GetControllerType.

맞춤형 컨트롤러 공장은 종종 ASP.NET MVC 응용 프로그램에 종속성 주입을 제공하는 데 사용됩니다.

ASP.NET MVC 2를 지원하기 위해 사용자 정의 컨트롤러 공장을 업데이트하려면 새 서명과 일치하도록 메소드 서명 또는 서명을 변경하고 속성 대신 요청 컨텍스트 매개 변수를 사용하십시오.

"지역"은 이제 예약 된 경로 가치 키입니다.

경로 값의 문자열 "영역"은 이제 "컨트롤러"및 "액션"과 같은 방식으로 ASP.NET MVC에서 특별한 의미를 갖습니다. 한 가지 의미는 HTML 헬퍼에 "면적"이 포함 된 경로 값 사전이 제공되는 경우 헬퍼는 더 이상 쿼리 문자열에 "영역"을 추가하지 않는다는 것입니다.

영역 기능을 사용하는 경우 사용하지 마십시오. {area} Route URL의 일부로.

알려진 문제

뷰 추가 대화 상자는 강하게 만들어진보기 확인란이 확인되면 NullReferenceException을 던지고 "빈"이외의 뷰 컨텐츠 선택이 선택되며,보기 데이터 클래스 유형 이름이 존재하는 유형에 대해 지정됩니다. 유형 이름을 지정할 때 드롭 다운 목록을 사용하여 유형 이름을 선택하거나 완전히 자격이있는 유형 이름을 입력하십시오. 존재하지 않는 유형의 경우 컨텐츠를 "빈"으로 설정해야합니다.

다른 팁

이 문서를 확인하십시오. 깨지는 변화에 대해 배울 것입니다.http://go.microsoft.com/fwlink/?linkid=157072

나를 물린 한 가지 gotcha는 모델의 모든 필드가 항상 게시물에서 검증된다는 것입니다.

변경 사항은 Brad Wilson이 설명합니다 여기.

스티브 앤더슨의 블로그 게시물 문제와 내가 좋아하는 솔루션 (사용자 정의 검증기 사용)을 설명합니다.

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