【发布时间】:2013-08-22 23:26:02
【问题描述】:
我正在尝试一些自定义路由,但是当我尝试访问我的网站时收到 404。
我已经在我的 global.asax 中尝试了这两种方法
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
name: "Show",
url: "{controller}/{action}/{trip}/{year}/{user}",
defaults :new { controller = "Home", action = "Show" }
);
}
和
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
"Default",
"{controller}/{action}/{trip}/{year}/{user}",
new { controller = "Home", action = "Show", trip = "", year = "", user = "" }
);
}
这里是控制器动作方法:
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 中的这些方法都不起作用。我读过的所有内容都会让我相信这应该可行。
我在这里错过了什么?
【问题讨论】:
-
404 无法准确找到是什么意思?
-
我添加了您的第一条路线和您的控制器操作,并且该 URL 工作正常。您的
Show视图是否位于Home文件夹中的Views文件夹中,例如Views\Home\Show.cshtml? -
是的,显示视图在那里。有趣的是,如果我只是去 /home/show,页面就会出现。我已经确定我已经重建了解决方案,但它仍然无法正常工作。
-
你没有同时使用这两条路线是吗?您是否在默认路由之前定义了您的路由?
-
哇!事实证明,我的项目中的路由发生在另一个文件(不同于 global.asax)中,称为 reouteconfig.cs。继续并创建一个答案,我会接受它,因为你让我跳出框框思考这个解决方案......谢谢。
标签: asp.net-mvc-4 asp.net-mvc-routing