MVC 3/4/5应用程序

时间:2015-04-27 17:55:36

标签: .net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 razor

让我们说我们有两个控制器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 }
        );
    }
}

1 个答案:

答案 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在评论中总结得很好。