You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# ASP.Net MVC项目如何在div中展示数据库文本数据

ASP.NET MVC + EF 实现首页单块内容展示方案

你已经掌握基础EF CRUD逻辑的话,整个实现只需要按下面的步骤走即可,不需要传递列表数据,直接绑定单个实体到视图就能实现非列表的内容渲染:

1. 定义首页内容实体

在Models文件夹下新建对应实体类,映射数据库存储的标题、内容字段:

public class HomeSiteContent
{
    public int Id { get; set; }
    public string HomeTitle { get; set; }
    public string HomeBody { get; set; }
    public DateTime UpdateTime { get; set; }
}

2. 接入EF上下文

在项目的EF数据上下文类(一般命名为xxxDbContext)中添加对应DbSet,和你之前做CRUD的实体配置规则完全一致:

public DbSet<HomeSiteContent> HomeSiteContents { get; set; }

执行EF迁移更新数据库后,直接复用已有的CRUD逻辑做后台管理页即可。注意首页内容只需要保留1条记录,后台仅开放编辑入口即可,不需要做新增多条、删除的功能,避免查出多条数据导致展示混乱。

3. 首页控制器查询单条数据

修改Home控制器的Index动作方法,查询单条首页内容传递给视图,不要传List集合类型:

public ActionResult Index()
{
    // 取第一条首页内容,不存在则初始化默认值,避免空引用报错
    var homeContent = db.HomeSiteContents.FirstOrDefault() ?? new HomeSiteContent
    {
        HomeTitle = "网站默认标题",
        HomeBody = "网站默认介绍内容"
    };
    return View(homeContent);
}

4. 视图层绑定数据渲染到div

在首页Index视图顶部声明绑定的模型类型为单个实体类(不要声明为IEnumerable列表类型),直接在对应div中输出字段值即可:

@model 你的项目命名空间.Models.HomeSiteContent
@{
    ViewBag.Title = Model.HomeTitle;
}

<h1>@Model.HomeTitle</h1>
<div class="home-content-wrap">
    @* 纯文本内容直接输出即可,Razor会自动做XSS转义 *@
    @* 如果是富文本编辑器存的HTML内容,替换为@Html.Raw(Model.HomeBody)渲染 *@
    @Model.HomeBody
</div>

注意事项

  • 如果后台用富文本编辑器录入带HTML标签的内容,渲染时必须用@Html.Raw()方法,否则HTML标签会被当成普通文本直接输出,无法渲染格式
  • 首页访问量较高的话,可以给这个查询加5-10分钟的本地缓存,减少不必要的数据库查询压力
  • 系统第一次初始化时可以自动插入一条默认的首页内容记录,避免线上环境首次访问出现默认占位内容

内容的提问来源于stack exchange,提问作者Barış Aydoğdu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 19:57:16