7

Web のデザインに Visual Studio 2010 を使用しており、レイヤーを使用しています。

プログラミングでは、gidview と objectdatasource を使用していますが、次の例外が発生します。

"The type 'WebApplication4.view1' is ambiguous: it could come from assembly   
 'C:\Users\EHSAN\AppData\Local\Temp\Temporary ASP.NET 
  Files\root\d04444bc\d654bde6\App_Code.i0fp6yrj.DLL' or from assembly 
  'C:\Users\EHSAN\Documents\Visual Studio 
  2010\Projects\WebApplication4\WebApplication4\bin\WebApplication4.DLL'. Please 
  specify the assembly explicitly in the type name."

私は自分のコードをここに置きます:

これは私のweb.aspxです:

<asp:ObjectDataSource ID="ObjectDataSource1" Runat="server" TypeName="WebApplication4.view1"
        SelectMethod="Search" OldValuesParameterFormatString="original_{0}" >

      </asp:ObjectDataSource>

これは、APP_Code の BAL フォルダーにある search.cs ファイルです。

namespace WebApplication4
{
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Linq;
    using System.Data;
 public class view1 : System.Web.UI.Page
    {
        public view1()
        { }

        public List<person> Search()
        {
            List<person> persons = new List<person>();
            DataSet ds = PersonsDB.Search();

            foreach (DataRow row in ds.Tables[0].Rows)
            {

                persons.Add(new person((String)row["id"], (String)row["nam"], (String)row["family"], (String)row["namepedar"], (String)row["shshenas"], (String)row["codemelli"]));
            }


            return persons;
        }
    }

問題はどこだ?

4

6 に答える 6

12

Search.cs ファイルを App_Code フォルダーから移動してみて、機能するかどうかを確認してください。私は同じ問題を抱えていたので、それを移動して動作し始めました。

于 2014-05-21T01:14:00.630 に答える
3

同じエラーが発生しました。control1という名前のコントロールを含む WebUserControlプロジェクトを作成しました。また、プロジェクトWebsite1があり、ここで control1 を使用しました (プロジェクト ビルド イベントを使用してcontrol1Website1にコピーしました)。うまくいきましたが、その後、自分のWebsite1プロジェクトをコピーして、名前をWebsite2プロジェクトに変更しました。website2このエラーが発生しました。クリーン、再構築しても解決しませんでした。Website2\bin フォルダー内のすべてのファイルを削除し、 Website2プロジェクトをビルドします。エラーが解決されました。

于 2014-10-14T08:55:21.690 に答える
2

これは、プロジェクトに同じ名前のクラスが 2 つある場合に発生します。通常は、コピー アンド ペースト エラーが原因です。他の場所で名前が付けられた他のクラスがあるかどうかを確認できますview1か?

これが問題でない場合は、ここに示すように一時 Web ファイルをクリアしてみてください: 一時 asp.net ファイルのクリア

于 2013-05-18T08:32:09.637 に答える
0

ソリューションへの参照を追加するときは、そのファイルのプロパティをローカルにコピーして "False" にしてください。そのため、ソリューションをビルドしてもコピーされず、エラーは発生しません。わたしにはできる。これを試してください。

于 2015-06-11T06:58:15.417 に答える
0

Web サイト/Web アプリケーションのプロパティを右クリックし、[アセンブリ名] フィールドに目的の名前を設定します。

例: アプリケーションの名前が asXYZで、名前空間の命名 as を使用している場合、アプリケーションはcompanyname.dept.XYZ2 つの別個の dll を持っている可能性があります。XYZ.dll競合をcompanyname.dept.XYZ.dll引き起こす可能性があります。

于 2017-08-02T14:17:22.277 に答える