2011-03-01 83 views
2

我在幾個不同的方式嘗試這樣做:爲什麼我不能在我的用戶控件中訪問我的viewmodel?

1:

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

2:

<%@ Import Namespace="MyNameSpace.MyModel" %> 

但無論我做什麼,我沒有this.Model訪問或任何我期望看到的東西。項目中的其他控件和頁面都可以訪問這些內容,而且沒有一個開發人員能夠告訴我他們爲什麼可以和我不能。有任何想法嗎?

編輯

從那時起,我已經創建了一些控件和頁面。有時,intellisense認爲this.Model沒有問題。它還發現像Html.RenderPartial()和它應該找到的各種其他好東西。所以,對於那些會告訴我智力感知不起作用的人,你錯了。它可以。但在所有觀點中都不一致。據我和任何其他開發人員可以說,我沒有做任何不同的事情。事情我已經嘗試:

  • 關閉解決方案
  • 刪除後的文件夾建立
  • 重新打開解決方案
  • 重建,無論是定期或分析建立

有時,這些步驟解決問題,但對於一些控件,我不能讓紅色的波浪線消失!這不是世界末日,因爲它不會產生運行時錯誤,但我想了解這裏發生了什麼。當然有人已經經歷了這一點,並已經知道問題的根源。

+1

的第一個定義是正確的。你如何傳遞視圖模型?你是什​​麼意思,你無法訪問它?你是否收到錯誤信息或什麼?請稍微描述一下。 –

+6

你在1中缺少一個尖括號。在MyModel後面應該有一個'>'。不知道這是否是一個錯字。 –

+2

您的導入的名稱空間在「inherits」聲明中與您的泛型模型類具有完全相同的名稱。導入應該只是「MyNameSpace」。 –

回答

3

您也可以嘗試將其添加到web.config:

<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="MyHtmlHelperLibrary.HtmlExtensions"/> 
    <add namespace="MyOtherNamespace"/> 
    </namespaces> 
+0

產品無法訪問Platform的Web.config。 (還是)感謝你的建議。 – Samo

+0

@Samo - ?你的評論沒有意義?你是說你沒有物理訪問web.config文件? – Rob

+0

是的。我的產品建立在一個旨在用作多種產品平臺的解決方案上。產品不得觸及平臺解決方案中的任何代碼。 – Samo

相關問題