2008-09-07 3 views
5

여기에 무슨 일이 일어나는지 확실하지 않습니다. 어떤 도움을 주시면 감사하겠습니다..NET MVC 모호한 형식 참조

새로운 .NET MVC 웹 앱을 만들려고합니다. 나는 그것을 올바르게 설정했다 꽤 확신했다, 그러나 나는 다음과 같은 오류 받고 있어요 :

다음과
The type 'System.Web.Mvc.ViewPage' is ambiguous: it could come from assembly 
'C:\MyProject\bin\System.Web.Mvc.DLL' or from assembly 
'C:\MyProject\bin\MyProject.DLL'. Please specify the assembly explicitly in the type name. 

가보고 소스 오류가 될 때 :

Line 1: <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %> 
Line 2: 
Line 3: <asp:Content ID="indexContent" ContentPlaceHolderID="MainContentPlaceHolder" runat="server"> 

뭐든지 난 것을 눈에 띄는를 완전히 잘못하고있는거야?

답변

1

이 오류는 일반적으로 클래스 이름 충돌이 있음을 나타냅니다. 두 개의 네임 스페이스를 참조하거나 사용중인 다른 네임 스페이스에 같은 이름의 클래스를 만들었습니다. 내가 무엇을 할 수 있는지 보면서 시작하겠다.

1
Inherits="System.Web.Mvc.ViewPage" 

기본 ViewPage 클래스가 아닌 Viewcodebehind 파일 클래스를 가리켜 야한다고 생각합니다.

2

CodeBehind 파일을 사용하고 있는데 상속을 지정하는 위치에 CodeBehind = ""특성이 표시되지 않습니까? 그런 다음 코드 숨김의 클래스 이름을 상속해야합니다.

예 :

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="MvcApplication4.Views.Home.Index" %> 

는 상속이 완전한 있는지 확인합니다. 클래스 이름 앞에 네임 스페이스가 있어야합니다.

3

내가 "ViewPage"페이지 중 하나에 이름을 지정했다고 가정합니다.

그리고 @ 조나단이 언급 한 것처럼,이 냄새 :

Inherits="System.Web.Mvc.ViewPage" 

을 내 MVC 응용 프로그램에서 모든 뷰 페이지는 대신이 있습니다 라인을 따라

Inherits="MySite.Views.Pages.Home" 

또는 무언가를. aspx 페이지 마크 업에는 상속 된 실제 클래스가 아닌 코드 숨김 클래스 이름을 가리키는 "상속"이 있어야합니다. 속성 이름은 오해의 소지가 있지만 그 초기의 유물이다.

2

ASP.NET MVC 베타를 실행 중이고이 오류가 발생했습니다.

보기를 위해 파일 뒤에 코드를 제거하려고하는 동안 발생했습니다. @Page 지시어에서 "CodeBehind"특성을 제거하고 System.Web.Mvc.ViewPage를 가리 키도록 "Inherits"특성을 변경했지만 실제 aspx.cs 코드는 내 프로젝트에서 손대지 않은 파일 뒤에 남겨 두었습니다.

내 프로젝트를 실행하려고하면 언급 한 오류가 발생합니다.

내 프로젝트에서보기에 대한 aspx.cs (코드 숨김) 파일을 삭제하여이 오류를 해결했습니다.

1

Reflector에서 C : \ MyProject \ bin \ MyProject.DLL을 열고 ViewPage를 찾아 우연히이를 정의했는지 확인하십시오.

2

web.configSystem.Web.Mvc에 어셈블리 참조를 확인하십시오.

광산 명시 적으로 2.0.0.0를 지정했지만, 내 프로젝트는

+0

MVC 2에서 MVC 5로 프로젝트를 업그레이드 할 때도 동일한 오류가 발생합니다. ~/및 ~/Views /에있는 두 web.config 파일에서 System.Web.Mvc 버전을 바꿔야합니다. –

0

3.0.0.0 내가 이번 주에 똑같은 오류가 발생한 참조.

내 Webform.aspx 파일에 생성 된 designer.cs 파일이 있습니다. 이 파일에서 클래스 이름은 실제로 "ViewPage"입니다. 디자이너 파일을 삭제하거나 클래스 내용을 webform.aspx.cs 파일로 이동하면 오류가 사라집니다.

누군가이 오류가 발생했을 경우를 대비해 거기에 넣으십시오.