2012-04-19 51 views
2

與MVC 4 Beta版和其移動的特點,在Login.Mobile.cshtml(不是這樣)在MVC曖昧召喚4測試版

@ Html.Partial以下行( 「_ ViewSwitcher」)

導致此編譯器錯誤周圍玩:

The call is ambiguous between the following methods or properties: 'System.Web.Mvc.Html.PartialExtensions.Partial(System.Web.Mvc.HtmlHelper, string)' and 'System.Web.Mvc.Html.PartialExtensions.Partial(System.Web.Mvc.HtmlHelper, string)'

Per MSDN這在System.Web.Mvc(在System.Web.Mvc.dll程序)中所定義,而我只似乎有一個單一的參考。

即使編譯器錯誤,應用程序仍能正常運行。

有在視圖中沒有using語句,雖然下面的命名空間是通過web.config合併:

<add namespace="System.Web.Mvc" /> 
    <add namespace="System.Web.Mvc.Ajax" /> 
    <add namespace="System.Web.Mvc.Html" /> 
    <add namespace="System.Web.Routing" /> 

發生了什麼,以及如何才能擺脫誤導編譯器錯誤的?

+0

你的@using語句在視圖的頂部是什麼樣子的? – 2012-04-19 22:29:57

+0

@ShaneCourtrille:沒有使用語句,儘管通過web.config合併了一些名稱空間。更新了問題。 – 2012-04-19 22:57:38

+0

您的佈局是否有任何@using語句?不知道在編譯期間是否應用了這些... – 2012-04-19 22:59:03

回答

1

該方法在兩個地方定義是通常的原因,它可以來自前一個構建的引用程序集,編譯器會選擇最可能的並使用它,因此不會暫停處理。

+0

確實如此,但我看不出我如何兩次引用相同的System.Web.Mvc.dll,也不應該在任何其他程序集中定義該方法。 – 2012-04-19 22:56:26

+0

忘記了,另一種方法是,如果你有一個x64文件夾來建立和建立的DLL文件夾的結果,你會得到這種模糊的錯誤。 – 2012-04-20 19:08:10