4

ここで何が起こっているのか完全にはわかりません。任意の助けをいただければ幸いです。

新しい .NET MVC Web アプリを作成しようとしています。正しくセットアップされていると確信していましたが、次のエラーが発生しています。

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">

私が完全に間違っていることは何か目立ちますか?

4

9 に答える 9

3

ページの1つに「ViewPage」という名前を付けたと思いますか?

@Jonathanが述べたように、これはにおいがします:

Inherits="System.Web.Mvc.ViewPage"

私の MVC アプリケーションでは、すべてのビュー ページに代わりに次のものがあります。

Inherits="MySite.Views.Pages.Home"

または、それに沿った何か。aspx ページ マークアップには、継承している実際のクラスではなく、コード ビハインド クラス名を指す "Inherits" が必要です。属性名はかなり誤解を招くものですが、それは初期のアーティファクトです。

于 2008-09-07T17:24:52.503 に答える
2

のアセンブリ参照を確認してSystem.Web.Mvcくださいweb.config

私は明示的に指定2.0.0.0していましたが、私のプロジェクトは参照されていました3.0.0.0

于 2012-11-09T14:59:59.777 に答える
2

CodeBehind ファイルを使用していますか? Inherits from を指定している CodeBehind="" 属性が表示されませんか? 次に、継承をコードビハインドのクラス名にポイントする必要があります。

例:

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

継承が完全に修飾されていることを確認してください。名前空間の後にクラス名が続く必要があります。

于 2008-09-07T17:20:48.753 に答える
1

このエラーは、通常、クラスの名前付けの競合を示しています。2 つの名前空間を参照しているか、使用している別の名前空間に同じ名前のクラスを作成しました。それが何であるかを調べることから始めます。

于 2008-09-07T16:58:23.470 に答える
1
 Inherits="System.Web.Mvc.ViewPage"

これは、基本の ViewPage クラスではなく、View コードビハインド ファイル クラスを指す必要があると思います。

于 2008-09-07T17:10:50.820 に答える
0

いいえ、これは構造的なエラー メッセージです。

http://trikks.wordpress.com/2011/08/26/the-type-is-ambiguous-it-could-come-from-assembly-or-from-assembly-please-specify-the-assembly-explicitly を確認してください-in-the-type-name/

于 2011-08-26T09:52:25.550 に答える