2013-05-18 71 views
6

我使用Visual Studio 2010設計一個網頁,我已經使用了層如何在類型名稱中指定程序集顯式?

編程,我使用的是gidview和ObjectDataSource,但我得到這個exeption:

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

問題在哪裏?

回答

2

當項目中存在兩個具有相同名稱的類時(通常是由於複製和粘貼錯誤)時,會發生這種情況。 你可以檢查其他地方是否有其他類別view1

如果這不是問題,嘗試清理您的臨時網頁文件,如下所示: Clearing out temporary asp.net files

+0

感謝您的回覆,但是,我的解決方案中沒有任何其他類名爲view1! –

+0

您是否嘗試清除臨時網絡文件? – Augusto

10

嘗試移動Search.cs魚貫而出App_Code文件夾,看看它是否工作。我遇到了同樣的問題,然後將它移出並開始工作。

+0

也爲我工作。我想知道爲什麼。 – RazvanR

+0

解決了我的問題 –

3

我有同樣的錯誤。我創建了WebUserControl項目,其中的控件名爲control1。我也有項目網站1其中我用我的控制1(使用項目構建事件複製控制1網站1)。它工作正常,但後來我複製了我的Website1項目並更名爲Website2項目。在網站2我得到了這個錯誤。清潔,重建沒有解決。我刪除了Website2 \ bin文件夾中的所有文件並構建了Website2項目。錯誤已解決。

+0

這應該是答案。瞭解這個問題很重要。但簡而言之,解決方案也是如此。 – KannedFarU

0

當您添加對解決方案的引用時,請將該文件屬性複製到本地以「False」。所以當我們構建解決方案時它不會被複制,我們也不會得到錯誤。這個對我有用。請試試這個。

0

右鍵單擊網站/ web應用程序屬性,並使用預期的名稱設置「組件名稱」字段。例如:如果應用程序被命名爲XYZ並使用命名空間命名爲companyname.dept.XYZ,那麼應用程序可能有2個單獨的dll。 XYZ.dllcompanyname.dept.XYZ.dll這可能會導致衝突。

相關問題