【问题标题】:mvc url redirection - Server Error in '/' Applicationmvc url 重定向 - “/”应用程序中的服务器错误
【发布时间】:2019-05-04 01:47:24
【问题描述】:

我正在完成书中的练习(刚开始学习 MVC)。我对 RouteConfig.cs 文件进行了以下更改:

routes.MapRoute("Contact", "Contact/{*pathinfo}", new { 
controller = "Home", action = "Contact" });

routes.MapRoute("About", "About/{*pathinfo}", new { controller = 
"About", action = "About" });

联系页面工作得很好,但是在尝试通过http://localhost:49899/About访问它时,About 会抛出错误

错误:“/”应用程序中的服务器错误。无法找到该资源。 描述:HTTP 404。您正在寻找的资源(或其之一 依赖项)可能已被删除,名称已更改,或者是 暂时不可用。请查看以下 URL 并制作 确保拼写正确。请求的网址:/关于

我看不出这两行代码之间有什么区别,有人能指出我缺少什么吗?这是一个全新的项目,具有所有默认设置和脚手架。

【问题讨论】:

  • 我无法在新的 MVC 项目中重现您的问题。您能否发布整个路由配置文件,以及您的 About 操作来自您的 AboutCountroller

标签: c# asp.net-mvc url redirect mapping


【解决方案1】:

当您创建默认项目时,在幕后为您发生了各种神奇的事情。默认项目很可能带有一个自动生成的 HomeController,一个自动生成的 Home 文件夹,其中包含 Home Controller 将调用的视图,以及与这些视图相对应的一些操作。

您可能没有名为 About 的控制器。您为 About 定义的路由表示要访问 About 页面,您将通过 About 控制器并调用 About 操作。很可能您需要点击 Home Controller,然后点击 About Action。

附: MVC 使用命名约定来推断事物的位置。您可能会在名为 Home 的视图文件夹中找到一个 About 视图。你在这里看到一个模式吗? Routing docs

【讨论】:

  • 嗨。问题出在 .net 框架版本本身。原始项目是在 3.5 中创建的,我在 mvc 4.6 中重新创建了它,它工作得很好。我不太确定是什么导致了这个问题,但很高兴它现在正在工作
猜你喜欢
  • 2021-12-26
  • 2019-05-07
  • 1970-01-01
  • 2020-09-05
  • 2020-10-18
  • 1970-01-01
  • 2017-09-18
  • 2014-07-07
  • 1970-01-01
相关资源
最近更新 更多