asp.net mvc 5-系统不';找不到存在的视图

asp.net mvc 5-系统不';找不到存在的视图,asp.net,razor,asp.net-mvc-5,Asp.net,Razor,Asp.net Mvc 5,下面是正在运行的代码: return RedirectToAction("BadFileError", "Error"); 然后将查看器重定向到: https://localhost:44340/Error/BadFileError 存在于 我到底错过了什么?为什么Asp.net似乎看不到我在不使用脚手架系统的情况下创建的视图? 下面是它抛出的错误: 您的浏览器将向您的站点/Error/BadFileError发出请求,而aspnet mvc framework将不会直接为razor文件提

下面是正在运行的代码:

return RedirectToAction("BadFileError", "Error");
然后将查看器重定向到:

https://localhost:44340/Error/BadFileError
存在于

我到底错过了什么?为什么Asp.net似乎看不到我在不使用脚手架系统的情况下创建的视图? 下面是它抛出的错误:

您的浏览器将向
您的站点/Error/BadFileError
发出请求,而aspnet mvc framework将不会直接为razor文件提供服务

您需要在
ErrorController
中使用该名称的操作方法。请求将被定向到操作方法,而不是视图文件。您的操作方法可以返回该视图(或任何其他视图)

将此添加到ErrorController

public ActionResult BadFileError()
{
   return View();
}
另外,如果您只是想向用户显示错误视图内容,可以使用
view()
方法调用来实现,方法调用包含错误视图的完整路径。您不一定需要执行重定向(这将发出新的http请求)

因此,您可以执行以下操作,而不是重定向

return View("~/Views/Error/BadFileError.cshtml");

我的Asp.net腿还在这里。只是一个有趣的旁注。当您在没有参数的情况下调用View()时,它将使用RoutedData.Values[“action”]获取操作名称并使用该名称查找视图。不要重定向用户以显示错误消息,因为这会破坏HTTP和REST的本质。您应该直接返回错误响应,而不是使用适当的状态代码。