【问题标题】:Model in Partial View Did Not Return Any Data局部视图中的模型未返回任何数据
【发布时间】:2019-06-27 06:04:03
【问题描述】:

我不太确定我在这里错过了什么。我已经在_Layout 中调用了聊天控制器,如下所示:

<div id="ChatContainer" class="chat-popup">
    @Html.Action("Index", "Chats")
</div>

控制器返回部分视图,模型如下:

public class ChatsController : Controller
{
    private ApplicationDbContext db = new ApplicationDbContext();

    public ActionResult Index()
    {
        var chats = db.Set<Chat>().ToList();
        return PartialView("_Index", chats);
    }
}

然后渲染局部视图:

@model IEnumerable<ERP.Models.Chat>

@{
    Layout = null;
}

@{
    foreach (var chat in Model)
    {
        @Html.Raw(chat.Message);
    }
}

这不是返回任何错误,也没有返回任何数据。我尝试使用 SQL Profiler 进行跟踪,这甚至不会触发表聊天。

【问题讨论】:

  • 如果表没有被触发,那是 EF 问题而不是 mvc 问题!
  • 你需要使用Html.RenderAction
  • 你调试代码了吗?索引动作的代码是否执行?
  • @ChetanRanpariya 是的,它被执行了。我尝试在_Index 中添加一些纯文本,结果显示
  • @ChetanRanpariya 我尝试使用@{Html.RenderAction("Index", "Chats")} 也没有用

标签: c# entity-framework asp.net-mvc-5 asp.net-mvc-partialview


【解决方案1】:

您的实体框架代码看起来不错。我只是想知道传递给 ApplicationDbContext 的连接字符串是否与您正在分析并拥有数据的数据库相同。有时很容易错过这一点,因为具有默认策略的实体框架会自动创建一个数据库,如果它不存在.

[更新]

您的部分视图代码有点不正确。以下为写法:

@model IEnumerable<ERP.Models.Chat>

@{
    Layout = null;
}

@{
    foreach (var chat in Model)
    {
       @Html.Raw(chat.Message) // Put the @ symbol before Html
    }
}

【讨论】:

  • 是的,它在同一个数据库中。并且该表已经存在于数据库中。我试图删除数据库并执行update-database 并成功创建表。我将尝试创建新项目来隔离问题。谢谢。
  • 好的,检查更新的答案。这可能是根本原因。您的 EF 代码没有任何问题。
  • 我给你 +1 的收获,我很抱歉我错过了,我刚刚创建了它。但在实际代码中,它有@
【解决方案2】:

试试这个:

public class ChatsController : Controller
{
  public ActionResult Index()
    {
          using (ApplicationDbContext db = new ApplicationDbContext())
          {
            var chats = db.Set<Chat>().ToList();
            return PartialView("_Index", chats);
          }
    }
}

【讨论】:

    【解决方案3】:

    对不起大家。看起来这不是编码问题。

    我不知道这是什么原因造成的。我尝试在另一台 PC 中加载所有包并编译它,这很好。

    很抱歉我不能在这里给出答案,但我记得上次更新SignalR并将id从Guid更改为Int

    【讨论】:

      猜你喜欢
      • 2012-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多