2009-01-22 71 views
2

在做一個MVC項目我得到了以下2編譯錯誤:ASP.NET MVC參考問題?

  1. 類型System.Web.Mvc.ViewPage在未引用的程序集定義。您必須添加一個引用組件:

System.Web.Mvc,版本= 1.0.0.0,文化=中立,公鑰=空。

  • 呼叫是下列方法或屬性之間曖昧:
  • System.Web.Mvc.Html.LinkExtensions.ActionLink(System.Web程序。 Mvc.HtmlHelper,字符串,字符串,字符串)和System.Web.Mvc.Html.LinkExtensions.ActionLink(System.Web.Mvc.HtmlHelper,字符串,字符串,字符串)

    我想我有正確的設置在web.config

    <compilation debug="true"> 
        <assemblies> 
        <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
        <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
        <add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
        <add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
        <add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
        <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
        <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
        <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
        </assemblies> 
    </compilation> 
    

    <namespaces> 
        <add namespace="System.Web.Mvc"/> 
        <add namespace="System.Web.Mvc.Ajax"/> 
        <add namespace="System.Web.Mvc.Html"/> 
        <add namespace="System.Web.Routing"/> 
        <add namespace="System.Linq"/> 
        <add namespace="System.Collections.Generic"/>  
    </namespaces> 
    

    而且,我參考3名的dll我龍頭安裝asp.net的MVC在:

    C:\Program Files\Microsoft ASP.NET\ASP.NET MVC Beta\Assemblies 
    

    3個dll文件:

    System.Web.Abstractions.dll 
    System.Web.Routing.dll 
    System.Web.Mvc.dll 
    

    有人可以解釋出現什麼問題以及如何解決他們的問題è?

    回答

    0

    因爲您引用的是所有正確的程序集,並且我看不到您的Web.Config文件有任何問題,所以我想知道是否引用了程序集的版本。 ASP.NET MVC的幾個版本已經發布了,也許你仍然在引用早期版本的System.Web.Mvc.dll(在版本1.0.0.0之前)?

    2

    我從CodePlex下載了最新的mvc源代碼並構建它。我通過將System.Web.Mvc.dll引用到我的下載版本和其他2個dll來引用C:\ Program Files \ Microsoft ASP.NET \ ASP.NET MVC Beta \ Assemblies文件夾中的dll,從而修復了第一個錯誤。

    現在的第一個錯誤是不存在的,但第二個錯誤仍然存​​在,這是

    的調用以下方法或屬性之間曖昧:「System.Web.Mvc.Html.LinkExtensions.ActionLink(系統.Web.Mvc.HtmlHelper,string,string,string)'和'System.Web.Mvc.Html.LinkExtensions.ActionLink(System.Web.Mvc.HtmlHelper,string,string,string)'

    發生這種情況每個查看頁面非常多。我能做些什麼來解決這個問題?

    非常感謝!

    +0

    你能告訴你如何在您的視圖中使用Html.ActionLink? – 2009-01-23 11:53:26

    1

    第二個錯誤可能是由於其中一個視圖出現了一些錯誤。我在使用ASP.NET MVC時遇到過類似的問題。當視圖中出現錯誤時,編譯器錯誤不是很具體。因此,請關注視圖,特別是您調用Html.ActionLink()的代碼部分。這應該最終將帶您到錯誤的來源...

    +0

    第二個錯誤是因爲IDE正在從兩個不同的來源獲得參考。因此它不能決定選擇哪一個。 我將System.Web.Mvc和System.Web.Mvc.Html添加到名稱空間部分的web.config文件中。 我刪除了System.Web.Mvc.Html並得到修復。 下面是截圖,如果有人面臨同樣的問題:http://i.imgur.com/ctLsgoW.png – Rahatur 2013-05-26 14:31:18

    0

    第二個錯誤是因爲IDE從兩個不同的來源獲取參考。因此它不能決定選擇哪一個。

    我有System.Web.Mvc和System.Web.Mvc.Html添加到命名空間部分web.config文件。 我刪除了System.Web.Mvc.Html並得到修復。

    下面是截圖,如果任何人也面臨同樣的問題:enter image description here