部分视图中的模型未返回任何数据

时间:2019-02-03 05:23:10

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

我不太确定我在这里错过了什么。我在_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事件探查器进行跟踪,这甚至没有触发表聊天。

3 个答案:

答案 0 :(得分:1)

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

[已更新]

您的局部视图代码有点不正确。下面是写一个:

import {Component} from '@angular/core';
import {Platform} from '@ionic/angular';
import {File} from '@ionic-native/file';

@Component({
    selector: 'app-home',
    templateUrl: 'home.page.html',
    styleUrls: ['home.page.scss'],
})
export class HomePage {
    constructor(public platform: Platform) {
        platform.ready().then(() => {
            window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {
                console.log(fileSystem)
            }, function(error) {
                console.log(error);
            });
        });
    }
}

答案 1 :(得分:0)

尝试一下:

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

答案 2 :(得分:0)

我很抱歉。看起来这不是编码问题。

我不知道是什么原因造成的。我尝试将所有程序包加载到另一台PC上并进行编译,这一切正常。

对不起,我在这里无法真正给出答案,但是我上次记得是在更新SignalR并将id从Guid更改为Int