Asp.net mvc 4 自定义路由.NETMVC4
我试图在一些自定义路由上绞尽脑汁,但当我尝试访问我的站点时,我得到了404 我已经在我的global.asax中尝试了这两种方法Asp.net mvc 4 自定义路由.NETMVC4,asp.net-mvc-4,asp.net-mvc-routing,Asp.net Mvc 4,Asp.net Mvc Routing,我试图在一些自定义路由上绞尽脑汁,但当我尝试访问我的站点时,我得到了404 我已经在我的global.asax中尝试了这两种方法 public static void RegisterRoutes(RouteCollection routes) { routes.MapRoute( name: "Show", url: "{controller}/{action}/{trip}/{year}/{user}", defaults :new
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
name: "Show",
url: "{controller}/{action}/{trip}/{year}/{user}",
defaults :new { controller = "Home", action = "Show" }
);
}
及
以下是控制器操作方法:
public ActionResult Show(string trip, string year, string user)
{
ViewBag.imagepath = "/Uploadedimages/" + trip + "/" + year + "/" + user + "/";
return View();
}
下面是我如何尝试点击它的示例URL:
http://localhost:31065/home/show/green/2013/hunt
我的global.asax中的这两种方法都不起作用。我读过的每一篇文章都会让我相信这是可行的
我在这里遗漏了什么?这是我的
RouteConfig
,它与URLhttp://localhost:31065/home/show/green/2013/hunt
:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Show",
url: "{controller}/{action}/{trip}/{year}/{user}",
defaults: new { controller = "Home", action = "Show" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
404说它找不到什么?我添加了你的第一条路线和你的控制器动作,这个URL工作得很好。您的
Show
视图是否位于Views
文件夹中的Home
文件夹中,例如Views\Home\Show.cshtml
?是的,Show视图在那里。有趣的是,如果我只是去/home/show,页面就会出现。我已经确定我已经重新构建了解决方案,但它仍然不起作用。你没有同时使用这两种方法,是吗?您是否在默认路线之前定义了路线?doh!事实证明,我的项目中的路由发生在一个不同的文件中(不同于global.asax),名为reouteconfig.cs。继续创建一个答案,我会接受它,因为你让我跳出了这个解决方案的框框…谢谢。
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Show",
url: "{controller}/{action}/{trip}/{year}/{user}",
defaults: new { controller = "Home", action = "Show" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}