2015-02-10 43 views
0

我正在使用Html.Action和PartialView。使用Html.Action和PartialView,但在程序集中獲取重複類型名稱

我有一個linq聲明,我知道工作正常。

但是,當試圖使用Html.Action時,我得到了linq語句的不同結果。

我收到此錯誤信息

異常被拋出通過調用的目標。

但真正的錯誤消息是組裝

我檢查我的數據,清理我的解決方案和所使用的Linqer工具,以確保語句在

有重複的類型名正常工作。沒有運氣。

這是我創建的。

的HTML代碼

@model @model IEnumerable<MvcCureUrbanNonProfit.Models.PageContent> 
@Html.Action("PageContentDisplay", "Home", new { id = 1 }) 

對於PartialView

@model MvcCureUrbanNonProfit.Models.PageContent 
@Html.Raw(@Model.PageContentLongDesc) 

對於的ActionResult方法

public ActionResult PageContentDisplay(int id) 
{ 
    var pageContentList = from p in db.PageContents 
         from w in db.WebSites 
         where w.WebSiteID == 4 && p.PageTab == 1 && p.PageContentSeqNbr = 1 
         select p; 
    return PartialView("_PageContentDisplay", pageContentList); 
} 
+0

是,應該是'從p.WebSites'中的w? – 2015-02-10 07:35:39

+0

您使用的是Ef 6.1嗎?如果是的話請檢查這篇文章http://stackoverflow.com/questions/23189266/entity-framework-duplicate-type-name-within-an-assembly- 6-1-0 – 2015-02-10 07:36:47

+0

我有另一個名爲WebSiteP的表ageContents。該表不存在於實體框架中。我在Ef 6.0上。我應該更新到Ef 6.1嗎? – RThompson 2015-02-10 13:21:13

回答

0

我經理找出錯誤消息的問題。花了幾個小時試圖瞭解錯誤信息後,結果發現問題與使用匿名類型< \ b>有關。

我的linq查詢返回一個IQueryable。我只需要收集1件物品。所以我說」。首先()返回的第一個元素。

[ChildActionOnly]

公衆的ActionResult PageContentDisplay(INT ID){

int webSiteNbr; 
bool result = int.TryParse(WebConfigurationManager.AppSettings["WebSite"], out webSiteNbr); 
PageTab pageTab = PageTab.Home; 
int pageTabVal = (int)pageTab; 

var pagContentList2 = from p in db.PageContents 
         from w in db.WebSites 
         where w.WebSiteID == webSiteNbr && p.PageTab == pageTabVal && p.PageContentSeqNbr == id 
         //select p; 
         select new PageContentVM 
         { 
          PageContentID = p.PageContentID, 
          PageContentLongDesc = p.PageContentLongDesc 
         }; 

return PartialView("_PageContentDisplay", pagContentList2.Single()); 

}

相關問題