【问题标题】:asp.net mvc 5 - system doesn't find a view that existsasp.net mvc 5 - 系统找不到存在的视图
【发布时间】:2016-10-21 18:25:18
【问题描述】:

下面是正在运行的代码:

return RedirectToAction("BadFileError", "Error");

然后将查看者重定向到:

https://localhost:44340/Error/BadFileError

存在于

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

【问题讨论】:

  • 不要重定向用户以显示错误消息,因为这破坏了 HTTP 和 REST 的本质。您应该直接返回错误响应,而不是使用适当的状态代码。

标签: asp.net razor asp.net-mvc-5


【解决方案1】:

您的浏览器将向yourSite/Error/BadFileError 发出请求,而aspnet mvc 框架不会直接提供剃须刀文件

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

将此添加到 ErrorController。

public ActionResult BadFileError()
{
   return View();
}

此外,如果您只是想向用户显示错误视图内容,您可以使用 View() 方法调用以及错误视图的完整路径来实现。您不一定需要进行重定向(这将发出新的 http 请求)。

所以你可以做而不是重定向

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

【讨论】:

  • 我的 Asp.net 腿还在这儿。
  • 只是一个有趣的旁注。当您调用不带参数的 View() 时,它使用 RouteData.Values["action"] 获取操作名称并使用它来查找视图。
猜你喜欢
  • 2011-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多