路由asp.net的问题

时间:2010-08-22 19:52:11

标签: asp.net-mvc

我是asp.net的新手,我的起始网址为http://localhost:61431/WebSuds/Suds/Welcome,路由代码

       routes.MapRoute(
            "Default",                                 // Route name
            "{controller}/{action}/{page}",            // URL with parameters
            new { controller = "Suds", action = "Welcome", page = 1 }  // Parameter defaults
        );

        routes.MapRoute(
          "Single",
          "{controller}/{action}",
         new { controller = "Suds", action = "Welcome" }
        );

我收到以下错误:HTTP 404.您要查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用。请查看以下网址,确保拼写正确。

任何人都可以帮我弄清楚如何将起始网址路由到控制器。

3 个答案:

答案 0 :(得分:1)

因为URL的第一部分是WebSuds,所以框架正在尝试将请求映射到WebSudsController而不是SudsController。您可以尝试的一件事是将路线的网址参数更改为"WebSuds/{controller}/{action}"

答案 1 :(得分:1)

以先到先得的方式搜索路线表。 找到合适的匹配后,将忽略以下路线。

您需要添加“WebSuds / {controller} / {action}”将其置于默认路线之上。最具体的路线应始终高于更通用的路线。

答案 2 :(得分:0)

使用以下路线和网址,您确保在控制器中有这些方法

public class SudsController
{
    public ActionResultWelcome(int? page) 
    {
        return View();
    }
}

由于您创建了两个相同Action的路由,一个路由参数page而另一个路径没有。所以我把参数设为int nullable。如果你没有在Welcome中使你的参数为空,那么它将返回一个错误,因为欢迎接受一个int,它总是会找到一个如下所示的网址/WebSuds/Suds/Welcome/1。您还可以将参数设为string,以使参数可为空。

然后你应该在你的视图文件夹中有这个

Views
    Suds
        Welcome.aspx

如果不存在,它将返回404错误,因为您的Welcome ActionResult中没有相应的页面。

如果所有这些都包括英国开发者所说的话。这可以帮助您解决问题。