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

MVC 5返回指定名称View时页面内容被包裹在pre标签内故障求解

问题根因

你遇到的页面被<pre>标签包裹的核心原因是浏览器将返回的HTML内容识别为纯文本,自动用<pre>标签包裹渲染,页面本身的HTML结构没有问题,问题出在响应头或者请求处理逻辑上。

解决方案

  • 先修正JS语法错误:你的提交逻辑里$("#SelectedFacility)缺少闭合引号,修改为:
    $("#SelectedFacility").val(e.detail.data["client-id"]);
    
    该语法错误可能导致表单提交时触发框架的异常处理逻辑,篡改响应头格式。
  • 检查响应Content-Type:打开浏览器开发者工具的「网络」面板,查看SelectFacility请求的响应头,确认Content-Type字段值是否为text/html。如果显示为text/plain,排查以下位置:
    • 全局Action过滤器是否存在针对Post请求自动修改Content-Type的逻辑
    • 控制器代码中是否有手动修改Response.ContentType的操作
    • 第三方组件(比如你用到的Mvc.Grid)是否存在篡改响应头的bug
  • 修正Action返回逻辑:Post请求不要直接调用另一个Action返回View,遵守PRG(Post-Redirect-Get)模式,改为重定向到FacilitiesAction,避免Post请求上下文的异常残留:
    [HttpPost]
    public ActionResult SelectFacility(int selectedFacility)
    {
        // 获取facilityName逻辑保持不变
        return RedirectToAction("Facilities", new { selectedFacility = selectedFacility, selectedFacilityName = facilityName });
    }
    
  • 排除布局页影响:临时将视图的Layout设为null,测试返回内容是否正常,排查布局页中是否存在错误的输出逻辑将HTML转义为字符串。
  • 检查全局JS逻辑:是否存在拦截所有表单提交、改为Ajax异步提交的逻辑,如果有,确认返回的HTML是否被当成纯文本插入到了页面中,而非替换整个文档内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 02:36:07