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