【问题标题】:asp.net mvc route entry for web site root request用于网站根请求的 asp.net mvc 路由条目
【发布时间】:2011-03-25 04:16:41
【问题描述】:

我不知道如何将 asp.net mvc 定向到所需的控制器以向我的站点根目录发出请求。

我在 RegisterRoutes 中尝试了很多不同的条目,包括:

routes.MapRoute(
     "MyHome",
      "",
      new { controller = "MyController", action = "Index", id = UrlParameter.Optional }
 );

我得到的错误是:

未找到视图“索引”或其主视图,或者没有视图引擎支持搜索到的位置。搜索了以下位置: ~/Views/Home/Index.aspx ~/Views/Home/Index.ascx ~/Views/Shared/Index.aspx ~/Views/Shared/Index.ascx ~/Views/Home/Index.cshtml ~/Views/Home/Index.vbhtml ~/Views/Shared/Index.cshtml ~/Views/Shared/Index.vbhtml

如何将网站根请求发送到所需的控制器?

更新:仍然无法解决问题,因此创建了一个开箱即用的新 MVC 项目。我确实多次重命名了原始项目,所以也许这在某个地方搞砸了。

【问题讨论】:

    标签: asp.net-mvc-3 asp.net-routing


    【解决方案1】:

    根据错误信息...

    1. 它将转到名为 HomeController 的控制器。所以,我猜你有另一个路由(可能是默认路由?)将它定向到 HomeController?

    2. 错误消息是关于视图而不是控制器。这是与路由不同的问题。

    实现您所要求的最简单方法是编辑在您创建 MVC3 项目时创建的默认路由。

    routes.MapRoute(
    "默认", // 路由名称
    "{controller}/{action}/{id}", // 带参数的 URL
    new { controller = "MyController", action = "Index", id = UrlParameter.Optional } // 参数默认值
    );

    【讨论】:

      【解决方案2】:

      要触发MyController,您的网址应类似于(基于当前路由)http://localhost/MyController

      查看您的错误,我感觉您从空的 MVC 项目模板开始。是这样吗?

      【讨论】:

        猜你喜欢
        • 2011-08-23
        • 1970-01-01
        • 2013-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-05
        • 1970-01-01
        • 2016-07-09
        相关资源
        最近更新 更多