C# ASP.NET MVC如何在不重写URL的情况下处理来自应用程序错误的404错误

C# ASP.NET MVC如何在不重写URL的情况下处理来自应用程序错误的404错误,c#,asp.net,asp.net-mvc,razor,error-handling,C#,Asp.net,Asp.net Mvc,Razor,Error Handling,我已经创建了一个非常简单的ASP.NET MVC 5应用程序,我想在其中处理来自应用程序错误的404异常,如和所示。但是,当我试图访问一个不存在的页面,并希望显示404页面时,自定义错误页面的源代码将以纯文本形式显示 我不希望我的URL被重写为 我的项目非常简单。我刚刚使用Razor将以下内容添加到基本ASP.NET Web应用程序中: 错误控制器.cs 查看Http404.cshtml 并编辑了Global.asax 如下图所示: 项目组织: Global.asax: ErrorsContro

我已经创建了一个非常简单的ASP.NET MVC 5应用程序,我想在其中处理来自应用程序错误的404异常,如和所示。但是,当我试图访问一个不存在的页面,并希望显示404页面时,自定义错误页面的源代码将以纯文本形式显示

我不希望我的URL被重写为

我的项目非常简单。我刚刚使用Razor将以下内容添加到基本ASP.NET Web应用程序中:

错误控制器.cs 查看Http404.cshtml 并编辑了Global.asax 如下图所示:

项目组织:

Global.asax:

ErrorsController.cs:

Http404.cshtml

但当我试图访问一个不存在的页面时,我看到的一切都是404页面的源代码: 不存在页面的输出:

我在stackoverflow和其他网站上搜索了几个小时,但在这里找不到任何帮助


有些人使用非常相似的代码来处理404异常,但结果并不相同。我真的被困在这个问题上了,我希望有人能帮助我,或者至少向我展示一种比在ASP.NETMVC5中处理404异常更好的方法

如果浏览器中有纯文本html,则可能意味着标题中的内容类型值错误

试试这个:

Response.ContentType = "text/html"; 
这当然不是最好的解决方案,但它是有效的


卢多

非常感谢!工作起来很有魅力!
public class ErrorsController : Controller
{
    public ActionResult Http404(string url)
    {
        return View("Http404");
    }
}
@{
    ViewBag.Title = "Page not found";
}

<h2>Page not found</h2>
Response.ContentType = "text/html";