使用 Html.Action 和 PartialView 但在程序集中获得重复的类型名称

Using Html.Action and PartialView but get a Duplicate type name within an assembly

我正在使用 Html.Action 和 PartialView。

我有一个 linq 语句,我知道它可以正常工作。

然而,当我尝试使用 Html.Action 时,我得到了与 linq 语句不同的结果。

我收到这条错误消息

Exception has been thrown by the target of an invocation.

但真正的错误信息是

Duplicate type name within an assembly

我已经检查了我的数据,清理了我的解决方案并使用了 Linqer 工具来确保语句正常工作。运气不好。

这是我创建的。

html代码

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

对于局部视图

@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);
}

我负责找出错误消息的问题。在花了几个小时试图理解错误消息后,发现问题与匿名类型<\b>有关。

我的 linq 查询是 returning IQueryable。我只需要 collection 中的一项。所以我添加了 ".First() 到 return 第一个元素。

[ChildActionOnly]

public 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());

}