我正在學習如何在ASP.NET MVC中創建自定義路由並擊中了磚牆。在我的Global.asax.cs文件,我已經添加了以下內容:在ASP.NET MVC路由中未傳遞參數值
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
// My Custom Route.
routes.MapRoute(
"User_Filter",
"home/filter/{name}",
new { controller = "Home", action = "Filter", name = String.Empty }
);
}
的想法是讓我能夠導航到http://localhost:123/home/filter/mynameparam
。這裏是我的控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult Filter(string name)
{
return this.Content(String.Format("You found me {0}", name));
}
}
當我瀏覽到http://localhost:123/home/filter/mynameparam
的方法位指示是Filter
叫,但參數name
總是null
。
有人可以給我一個指針,讓我建立我的自定義路線的正確方式,以便它將URL中的名稱部分傳遞給name
參數Filter()
。
偉大的東西,這沒有把戲。從現在開始需要關注路線訂購。歡呼所有這個問題的答案。 – 2011-01-25 16:25:09