在局部视图模式并不返回任何数据

问题描述 投票:1回答:3

我不太知道我错过了这里。我有一个打电话聊天控制器中像下面_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事件探查器跟踪,这不是连火表聊天。

c# entity-framework asp.net-mvc-5 asp.net-mvc-partialview
3个回答
1
投票

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

[更新]

您的局部视图代码是不正确位。以下是写一个:

@model IEnumerable<ERP.Models.Chat>

@{
    Layout = null;
}

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

0
投票

试试这个:

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

0
投票

我很抱歉所有。像这样没有编码问题。

我不知道什么原因引起的这一点。我尝试加载的所有包在另一台电脑,并编译它,这是工作好。

对不起,我真的不能在这里给出一个答案,但上次我记得正在更新SignalR和改变从Guid的id来Int

© www.soinside.com 2019 - 2024. All rights reserved.