我是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.您要查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用。请查看以下网址,确保拼写正确。
任何人都可以帮我弄清楚如何将起始网址路由到控制器。
答案 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中没有相应的页面。
如果所有这些都包括英国开发者所说的话。这可以帮助您解决问题。