让我们说我们有两个控制器HomeController和DocumentController 有一个"索引" HomeController中的动作方法和"添加" DocumentController中的action方法。
在注册路由(global.asax)中有一个home / index条目。
但是当我尝试访问Document / Add时,它不会抛出任何未找到的页面错误。 理想情况下它应该是,因为路线没有条目"文件/添加"在全球asax的注册路线中。
为什么会这样?
HomeController中:
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
return View();
}
}
DocumentController:
public class DocumentController : Controller
{
public ActionResult Add()
{
return View();
}
}
RouteConfig:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
答案 0 :(得分:0)
如果你有
routes.MapRoute(
name: "Default",
url: "Home/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
然后是的,当你有{baseurl} /
时,没有默认路由但据我所知,你的路线有一个正确解析的通配符控制器
查看http://www.nuget.org/packages/routedebugger/
@CraigW在评论中总结得很好。