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

时间:2015-02-10 07:18:51

标签: c# asp.net-mvc linq razor

我正在使用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);
}

1 个答案:

答案 0 :(得分:0)

我经理弄清楚错误信息的问题。在花了几个小时试图理解错误消息之后,事实证明该问题与匿名类型&lt; \ b&gt;有关。

我的linq查询返回了一个IQueryable。我只需要收集1件物品。所以我添加了“.First()来返回第一个元素。

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

}

相关问题