【发布时间】:2012-02-02 23:37:16
【问题描述】:
我在尝试让路由与 ASP.NET MVC 3.0 一起使用时遇到问题。我声明了以下路线:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "RsvpForm", id = UrlParameter.Optional }
);
routes.MapRoute(
"TestRoute",
"{id}",
new { controller = "Product", action = "Index3", id = UrlParameter.Optional }
);
routes.MapRoute(
"TestRoute2",
"{action}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
当我访问时:
http://localhost
该站点运行正常,并且似乎到达了Default 路由。
当我访问时:
http://localhost/1
我得到一个 404:
“/”应用程序中的服务器错误。
找不到资源。 说明:HTTP 404。您要查找的资源(或其依赖项之一)可能已被删除、名称已更改或已更改 暂时不可用。请查看以下 URL 并制作 确保拼写正确。
请求的网址:/1
以下是这些路由对应的操作:
public ActionResult Index3(int? id)
{
Product myProduct = new Product
{
ProductID = 1,
Name = "Product 1 - Index 3",
Description = "A boat for one person",
Category = "Watersports",
Price = 275M
};
Product myProduct2 = new Product
{
ProductID = 2,
Name = "Product 2 - Index 3",
Description = "A boat for one person",
Category = "Watersports",
Price = 275M
};
ViewBag.ProcessingTime = DateTime.Now.ToShortTimeString();
if (id == 1)
return View("index", myProduct);
else
return View("index", myProduct2);
}
我如何构建我的路线,以便正确命中所有三种操作方法?
【问题讨论】:
标签: c# asp.net-mvc asp.net-mvc-3 routing