我有一个控制器调用Diary
一个名为View
.
如果我收到格式为“Diary/2012/6”的 URL,我希望它使用= 2012 和= 6调用View
操作。year
month
如果我收到“日记”形式的 URL,我希望它使用= [当前年份] 和= [当前月份编号]调用View
操作。year
month
我将如何配置路由?
我有一个控制器调用Diary
一个名为View
.
如果我收到格式为“Diary/2012/6”的 URL,我希望它使用= 2012 和= 6调用View
操作。year
month
如果我收到“日记”形式的 URL,我希望它使用= [当前年份] 和= [当前月份编号]调用View
操作。year
month
我将如何配置路由?
routes.MapRoute(
"DiaryRoute",
"Diary/{year}/{month}",
new { controller = "Diary", action = "View", year = UrlParameter.Optional, month = UrlParameter.Optional }
);
和控制器动作:
public ActionResult View(int? year, int? month)
{
...
}
在您的路线中,您可以使用以下内容:
routes.MapRoute(
"Dairy", // Route name
"Dairy/{year}/{month}", // URL with parameters
new { controller = "Dairy", action = "Index", year = DateTime.Now.Year, month = DateTime.Now.Month });
如果未提供年/月,则将发送当前值。如果提供了它们,那么路由将使用这些值。
编辑
除了下面的注释之外,这是用于使用上述条件创建新项目的代码。
全球阿萨克斯
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"Dairy/{year}/{month}", // URL with parameters
new { controller = "Dairy", action = "Index", year = DateTime.Now.Year, month = DateTime.Now.Month } // Parameter defaults
);
}
乳品控制器
public ActionResult Index(int year, int month)
{
ViewBag.Year = year;
ViewBag.Month = month;
return View();
}
风景
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
Month - @ViewBag.Month <br/>
Year - @ViewBag.Year
结果: