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

ASP.NET MVC中HttpStatusCodeResult含换行时Ajax无法读取错误消息怎么办?

解决ASP.NET MVC Ajax删除操作异常消息多行显示问题

方案一:后端返回原生\n换行符,确保Ajax正常接收

在HomeController的Delete方法中,捕获异常后保留消息里的原生换行符,同时设置正确的响应状态码,让Ajax的error回调能读取到完整消息:

public ActionResult Delete(int id)
{
    try
    {
        // 执行删除逻辑
        return Json(new { success = true });
    }
    catch (Exception ex)
    {
        Response.StatusCode = (int)HttpStatusCode.BadRequest;
        // 直接返回带\n的异常消息
        return Json(new { errorMessage = ex.Message });
    }
}

前端Ajax请求时,直接使用返回的消息,alert会自动识别\n实现换行:

$.ajax({
    url: '/Home/Delete',
    type: 'POST',
    data: { id: 1 },
    success: function(response) {
        // 成功处理逻辑
    },
    error: function(xhr) {
        var res = JSON.parse(xhr.responseText);
        alert(res.errorMessage); // 自动显示多行
    }
});

方案二:后端已返回<br/>时,前端替换为\n再弹出

如果后端已经将换行符替换成了<br/>,可以在前端先做替换再弹出:

error: function(xhr) {
    var res = JSON.parse(xhr.responseText);
    var multiLineMsg = res.errorMessage.replace(/<br\/>/g, '\n');
    alert(multiLineMsg);
}

补充:解决Ajax无法读取原换行符的问题

之前Ajax读不到带\n的消息,通常是后端未正确设置响应状态码(需设为4xx类错误码,比如400),或者未返回可解析的JSON格式。确保异常处理时设置Response.StatusCode并返回JSON结构,就能让前端正常读取带换行的消息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 19:37:15