2011-03-11 131 views
0

我負責維護遺留系統。該系統是從Visual Studio 2008和MVC 1.0開發的。然而,我有的視覺工作室版本是2010年。現在我面臨一個新問題,即View中的Model對象無法使用原始類中的方法。以下是視圖文件的標題。我不能在查看頁面的Model.Count

<%@ Page Title="" Language="VB" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage(Of System.Linq.IQueryable(Of MVCApplication.opportunity))"%> 

在視圖部分,我有以下代碼。

<% If (Model.Count <> 0) Then%> 

然而,當我嘗試使用成員「計數」,有System.MissingMemberException:公共部件類型'伯爵'DataQuery(機會)找不到。

在調試模式下,模型包含與控制器相同的數據。但是,看起來頁面無法訪問它們。你有什麼建議如何解決它?

回答

-1

它看起來像該IQueryable interface沒有Count財產。 你試過這個嗎?

<% If (Model.Count() <> 0) Then %> 
+0

我試過了,它不起作用,似乎Model無法識別IQueryable接口的所有屬性,你有什麼建議嗎? – Boong 2011-03-12 05:39:34

+0

沒有這樣的事情,在Razor試圖做這樣的事情時,@if(Model.Count() 0) {....} – 2011-08-26 21:59:18

+0

如果有什麼不工作,我敢肯定這個問題不在Count()方法中,我在當前的項目中使用它,一切正常。確定模型的類型是IEnumerable。 – goenning 2011-08-29 11:21:31

0

我想從VS2008 + MVC1項目升級到VS2010 + MVC4BETA,我也開始面臨類似的問題。它在Model.xxxx上給出了一個錯誤。我們發現的問題是,代碼不會將相關的模型轉換爲其實際的對象類型,而只是保留爲Object。

我視圖文件的以下標題:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.master" 
    Inherits="System.Web.Mvc.ViewPage<Employee>" %> 

然後使用下面一行訪問Employee對象的屬性之一

<%=ViewData.Model.Name %> 

我在做什麼來得到這個工作,我們正在對來自ViewData.Model的對象進行類型轉換,如下所示:

<% Employee model = (Employee)ViewData.Model;%> 

然後使用下面的代碼效果不錯

<%=model.Name %> 

希望這有助於某人。但我不知道爲什麼這是必需的。