2011-05-02 8 views
3

내가/테스트 중첩 된 레이아웃을 배울 수있는 다음 문서를 다음입니다유형 'System.Web.IHtmlString'이 참조되지 않은 어셈블리에 정의되어

리틀 ... 지금 잃었다. http://blogs.msdn.com/b/marcinon/archive/2010/12/15/razor-nested-layouts-and-redefined-sections.aspx

그리고 난 다음 오류가 점점 오전 :

The type 'System.Web.IHtmlString' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. D:\Projects\Mvc3\Tests\RazorLayouts\Layout.MvcBase\Extensions\SectionExtensions.cs 15 36 Layout.MvcBase

나는 이름 공간 System.Web이 참조가 ... 그리고 파란 선은 "RenderSection"에 있습니다. public static HelperResult RenderSection

답변

1

모든 것이 프레임 워크의 동일한 버전 (예 : System.Web 3.5를 참조하지 않음)을 사용하고 있는지 확인하고 베타 버전을 설치했는지 여부를 확인합니다. 다른 버전.

할 수 없다면 프로젝트의 zip 파일을 제공 할 수 있습니까 (API 키, 연결 문자열 등의 중요한 정보는 삭제해야합니다).

편집 : 그냥 생각 - 당신은 당신이 참조하는 네임 스페이스 System.Web을했다고 말했다. 이것은 어셈블리 System.Web과 동일하지 않습니다. 다른 어셈블리 (예 : System.Web.Mvc)의 클래스는 네임 스페이스를 포함 할 수 있으므로 어셈블리없이 네임 스페이스를 가져올 수 있습니다. 어셈블리 참조 폴더에서 "System.Web"을 볼 수 있는지 확인하십시오.

+0

테스트 응용 프로그램이므로 문제없이 제공 할 수 있습니다. 나중에 VS2010과 테스트 솔루션을 만들 때 ASP.net 4.0이 기본적으로 선택되었습니다 ... –

+0

네임 스페이스 * System.Web을 참조했다. 이것은 * assembly * System.Web과 같지 않습니다. 다른 어셈블리 (예 : System.Web.Mvc)의 클래스는 네임 스페이스를 포함 할 수 있으므로 어셈블리없이 네임 스페이스를 가져올 수 있습니다. 어셈블리 참조 폴더에서 "System.Web"을 볼 수 있는지 확인하십시오. –

+0

오늘 밤 캐나다에서 내 후보자 - 연방 선거를 돕는 데 바쁜 해결책을 게시 할 수 없을 것 같습니다. –

0

동일한 문제가있었습니다. System.Web 어셈블리를 추가했지만 참조를 추가하지 않았습니다. 내가 참조 폴더에 하나의 어셈블리를 두 번 클릭하고 새로운 탭을 엽니 다 여기에 내가 선택한 올바른 버전의. NET과 내가 특정 어셈블리 버전을 추가하고 제대로 작동합니다. 제 경우에는 .net 4.0을 사용합니다. 나는 너를 도울 수 있기를 바란다.

3

방금이 문제가있었습니다. "System.Web"에 대한 참조를 추가해야 할 수도 있습니다. 그것을 위해 그것을 고정. "using"문을 기억하는 것이 아니라 실제로 참조 문을 추가하는 것을 기억하십시오. 내 컨트롤러에 대한 테스트 프로젝트를 설정하는 동안이 문제가 발생했습니다.

+0

이 기능은 저에게 효과적 이었지만 Visual Studio를 다시로드해야했습니다. 이전에 빌드 된 버전의 참조가 놓여있었습니다. – Marty

관련 문제