2010-11-08 34 views
3

我用一個模型創建了一個ASP.NET MVC 2項目。然後,我創建了一個視圖並選擇它作爲創建模型的強類型。我也以部分觀點做了同樣的事情。無論哪種情況,出於某種原因,我得到的錯誤是:「無法解析符號'Html',每當我嘗試使用ASP.NET MVC 2爲模型創建表單元素提供的Html幫助器方法時,我都有Visual Studio 2010和ASP 。.NET MVC 2只裝這東西,以前已經見過,如果是的話,有沒有解決方案,將解決此爲什麼我不能在ASP.NET MVC 2中使用強類型視圖的Html幫助器方法?

我的模型是這樣的:??

public namespace MyNamespace { public class MyModel { public string MyProperty { get; set; } } } 

定期的第一行查看是:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<MyNamespace.MyModel>" %> 

部分視圖的第一行是:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyNamespace.MyModel>" %> 
+0

你是否在使用resharper? – 2010-11-08 18:57:32

+0

是的,但是在安裝ReSharper之前甚至發生了這種情況。 – gtaborga 2010-11-08 19:05:34

+0

您是否找到解決此問題的方法? – dcarneiro 2011-02-17 10:13:13

回答

3

我得到這個錯誤的時候,我不太知道什麼原因造成的。它必須與Visual Studio有關,否則無法正確解析Page/UserControl指令,並且隨後不會加載繼承屬性中定義的正確類型。

它並不真正影響比其他應用程序失去了智能感知,你也得到了很多的錯誤在Visual Studio輸出時,你有ASPX視圖打開文件,建立自己的解決方案(解決方案應該還是建立無後顧之憂) 。

我可以通過搞亂Page/UserControl指令來讓錯誤消失,它迫使Visual Studio重新解析它。例如。在inherits屬性內的任意位置放置一個隨機空間,然後將其刪除。

HTHS,
查爾斯

詩篇。我也在使用resharper,但我不確定是否應該指責。

+0

+1太棒了。你拯救了我的一天。 – Christian13467 2011-05-02 18:32:07

0

是的,這也發生了幾次我。如果應用程序正確加載並且視圖加載對象,我懷疑它可能是您的ReSharper Build。嘗試更新您的Resharper版本並查看它是否識別您的模型。

+0

就像我在上面的評論中說過的那樣,它發生在我安裝ReSharper之前。 – gtaborga 2010-11-08 21:59:56

+0

您的應用程序是否正確運行? – 2010-11-08 22:10:28

+0

我一直在使用非強類型部分視圖,直到我在另一臺計算機上嘗試它。今天,我試圖用強類型視圖(忽略Html幫助器被讀取)構建並運行一個應用程序,並讓它編譯。當我導航到網站時,我得到了一個不同的錯誤。它似乎無法找到模型......但這可能是我的錯誤。 – gtaborga 2010-11-08 22:26:14

5

我想我找到了解決您的問題(我不知道這是否是暫時的,雖然)

當您創建包含2個web.config文件中一個新的ASP MVC項目。一個在項目根目錄下,另一個在Views目錄下。

我認爲視圖上的那個不是必需的,所以我排除了它。第二天,resharper停止識別Html幫助器方法。我再次添加並重新加載解決方案,所有錯誤都消失了。

希望這有助於

編輯

this link可能會解決這個問題

+0

舊Q/A但仍然相關。另一個原因是,如果您使用在View web.config中未正確定義的自定義視圖引擎。底線。一般來說,確保你的web.config文件在剃刀或視圖引擎方面沒有錯誤。通常會解決問題。 – trevorc 2014-04-21 15:45:11

0

我有同樣的問題有所幫助,也去掉在無知的那一刻在web.config .. 。

將web.config的下面一段合併到web應用程序根目錄下的web.config中也可以實現。它再次像它應該一樣,仍然只有一個web.config文件。

<system.web> 
    <pages 
      validateRequest="false" 
      pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 
      pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 
      userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
     <namespaces> 
     <add namespace="System.Web.Mvc" /> 
     <add namespace="System.Web.Mvc.Ajax" /> 
     <add namespace="System.Web.Mvc.Html" /> 
     <add namespace="System.Web.Routing" /> 
     </namespaces> 
     <controls> 
      <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" /> 
     </controls> 
    </pages> 
    </system.web> 
0

這個錯誤發生在我身上,因爲我錯誤地移動了「Views」文件夾內的web.config文件。 此文件包含System.Web.Mvc的包含。希望這可以幫助。
問候

相關問題