gpt4 book ai didi

c# - MVC 5错误页面未显示

转载 作者:行者123 更新时间:2023-12-03 07:59:50 28 4
gpt4 key购买 nike

我正在编码MVC 5 Internet应用程序,并且遇到错误问题。

输入无效的View数据时,出现与所显示错误页面相关的错误。

我输入以下内容:

<html>test</html>

在我的 Global.asax文件中,我具有以下内容:
protected void Application_Error(object sender, EventArgs e)

这是 Application_Error函数中的错误:
Message = "The controller for path '/Error/' was not found or does not implement IController."

Shared views文件夹中,有一个名为 Error.cshtml的错误页面。

这是 Error.cshtml的代码:
@model System.Web.Mvc.HandleErrorInfo

@{
if (TempData["UITitle"] != null)
{
ViewBag.Title = @TempData["UITitle"];
}
else
{
ViewBag.Title = "Error";
}
}

<h2 class="text-danger">
@if (TempData["UIHeading"] != null)
{
@TempData["UIHeading"];
}
else
{
<p>Error</p>
}
</h2>

<p>
@if (TempData["UIMessage"] != null)
{
@TempData["UIMessage"];
}
else
{
if (Model != null)
{
@Model.Exception.Message
}
else
{
<p>Error</p>
}
}
</p>

为什么会出现错误:
Message = "The controller for path '/Error/' was not found or does not implement IController."

提前致谢。

编辑

我在 ActionResult中添加了以下 controller:
public async Task<ActionResult> TestError()
{
return View("Error");
}

错误页面正确显示。

另外,我安装了 ELMAH并记录了异常的电子邮件。

EDIT2

我认为问题出在我的web.config中。

我在web.config中具有以下内容:
<customErrors mode="On" defaultRedirect="~/Error/">
</customErrors>

每当发生错误时,我都希望显示 Error.cshtml文件夹中的 Shared。我猜找不到 Error.cshtml,因为它在 Shared文件夹中。

我该如何实现?

最佳答案

您的错误消息表明您需要一种与URL =>'/Error'相对应的操作方法。

然后,此操作应返回View("Error.cshtml");(具有正确的路径)。

如果重定向位于web.config文件中,请尝试以下操作:

<customErrors mode="On" defaultRedirect="~/Views/Shared/Error.cshtml">
</customErrors>

关于c# - MVC 5错误页面未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28824295/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com