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

ASP.NET MVC编辑视图替换关联表字段后HTML编辑器不显示问题

问题原因及修复方案

1. 控制器未预加载关联导航属性

EF默认不会自动加载导航属性,你当前的查询逻辑只取了News主表数据,未加载关联的NewsArtical数据,可能导致视图渲染时属性为空,无法正常生成表单控件。
修改控制器Edit方法的查询逻辑:

// 先引入命名空间
using System.Data.Entity;

// GET: News/Edit/5
public async Task<ActionResult> Edit(int? id)
{
    if (id == null)
    {
        return RedirectToRecordNotFound();
    }

    // 修改查询语句,预加载NewsArtical关联数据
    News news = await _entities.News
        .Include(n => n.NewsArtical)
        .FirstOrDefaultAsync(n => n.ID == id);

    if (news == null)
    {
        return HttpNotFound();
    }
    // 兜底:如果该新闻还没有关联的NewsArtical数据,提前初始化避免视图空引用
    if (news.NewsArtical == null)
    {
        news.NewsArtical = new NewsArtical();
    }
    return View(news);
}

2. 未给NewsContent字段初始化富文本编辑器

你当前的JS代码只给Description字段初始化了summernote编辑器,嵌套属性NewsArtical.NewsContent生成的表单控件ID为NewsArtical_NewsContent,需要额外添加初始化逻辑。
修改视图Edit.cshtml的Scripts区块代码:

$(function () {
    // 原有Description的初始化,如果你要移除Content模块,可以删掉这行
    $("#Description").summernote({
        minHeight: 200
    });
    // 新增NewsContent的富文本初始化
    $("#NewsArtical_NewsContent").summernote({
        minHeight: 200
    });

    $('#Date').datetimepicker({
        format: 'DD/MM/YYYY',
        showClose: true,
        showClear: true,
        toolbarPlacement: 'top'
    });
});

3. 移除原有Content模块(可选)

如果不需要保留原Description字段的编辑区域,直接在视图的表单代码中删除Description对应的LabelFor、EditorFor、ValidationMessageFor三行代码即可。


内容的提问来源于stack exchange,提问作者CrazyIvan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 07:27:02