【问题标题】:Using Html.Action and PartialView but get a Duplicate type name within an assembly使用 Html.Action 和 PartialView 但在程序集中获得重复的类型名称
【发布时间】:2023-03-08 20:42:01
【问题描述】:

我正在使用 Html.Action 和 PartialView。

我有一个我知道工作正常的 linq 语句。

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

我收到此错误消息

调用的目标已抛出异常。

但真正的错误信息是

程序集中的重复类型名称

我检查了我的数据,清理了我的解决方案并使用了 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);
}

【问题讨论】:

  • 应该是from w in p.WebSites
  • 您使用的是 Ef 6.1 吗?如果是,请查看此帖子stackoverflow.com/questions/23189266/…
  • 我有另一个名为 WebSitePageContents 的表。该表在实体框架中不存在。我在 Ef 6.0 上。我应该更新到 Ef 6.1 吗?

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


【解决方案1】:

我经理找出错误消息的问题。在花了几个小时试图理解错误消息后,事实证明问题与匿名类型有关。

我的 linq 查询返回一个 IQueryable。我只需要收藏中的一件。所以我添加了 ".First() 来返回第一个元素。

[仅限ChildAction]

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

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-03
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    • 2016-03-25
    • 2014-03-29
    相关资源
    最近更新 更多