首页 > 解决方案 > 如果数据库中没有数据,那么如何在 asp.net 核心中显示“nodata”消息

问题描述

如果数据库中没有任何记录,如何在列表视图页面中显示没有任何数据消息。

这是我在这个控制器中注入的 ICouponRepository 接口。

IEnumerable<ManuItem> GetAllManuItem();

这是我要继承 ICouponRepository 的 SQLManuItemRepository

public IEnumerable<ManuItem> GetAllManuItem()
    {
        try
        {
            return context.ManuItems.Include(mi => mi.Category)
                                    .Include(mi => mi.SubCategory)
                                    .Where(mi => mi.IsDelete == false);
        }
        catch (Exception ex)
        {
            var exception = ex.Message;
            return null;
        }
    }

这是我的控制器方法

public IActionResult Index()
    {
        try
        {
            var model = manuItemRepository.GetAllManuItem();
            if (model == null)
            {
                ViewBag.NoData = "No have any Data";
                return View();
            }
            return View(model);
        }
        catch (Exception ex)
        {
            ViewBag.Error = "Somthing was Worng" + ex.Message;
        }
        return View();
    } 

这种方法有什么变化或视图有什么变化吗?

标签: asp.net-mvcasp.net-coreasp.net-web-api

解决方案


您可以直接判断返回的模型是否有视图上的数据。您可以参考下面的修改后的代码。

控制器

            public IActionResult Index()
            {
                var model = new List<ManuItem>();
                try
                {
                    model = manuItemRepository.GetAllManuItem();
                }
                catch (Exception ex)
                {
                    ViewBag.Error = "Somthing was Worng" + ex.Message;
                }
                return View(model);
            }

看法

@if (Model.Count() == 0)
{
    <p>No have any Data</p>
}
else
{
    <p>Have Data</p>
}

推荐阅读