1
我有一個歷史記錄文件夾的區域,每個年份都有一個視圖。視圖稱爲Year2010,Year2011等,僅用於顯示歷史數據。我試圖簡單地稱他們2010,2011,但它似乎是反對命名約定。而不是有一個路線歷史/ 2010年,我希望能夠使用歷史/ 2010年,這是可能的,如果是這樣的話?Mvc路由和數字視圖名稱
我有一個歷史記錄文件夾的區域,每個年份都有一個視圖。視圖稱爲Year2010,Year2011等,僅用於顯示歷史數據。我試圖簡單地稱他們2010,2011,但它似乎是反對命名約定。而不是有一個路線歷史/ 2010年,我希望能夠使用歷史/ 2010年,這是可能的,如果是這樣的話?Mvc路由和數字視圖名稱
您可以爲歷史記錄頁面添加自定義路由,以便該操作默認並將年份作爲參數傳入。
routes.MapRoute(
"History",
"History/{year}",
new { controller = "History", action = "Display", year = DateTime.Today.Year }
);
然後,在你的控制器,檢查一年過去了,顯示正確的觀點:
public ActionResult Display(int year)
{
switch (year)
{
case 2010:
return View("Year2010");
case 2011:
return View("Year2011");
}
return View();
}
我相信這將要求您有一個名爲'2010'的操作方法,這是一種違反關於方法名稱的C#規範。也許你可以讓你的'Index'動作將年份作爲Id參數,然後使用'View()'的重載來指定視圖名稱。聽起來對我來說是一個壞主意,但你可以嘗試。 – cadrell0 2013-04-09 14:52:48
不完全確定,但你有沒有嘗試:[ActionName(「2010」)] public ActionResult Year2010() – 2013-04-09 15:18:22
上面的評論是我尋找的答案,歡呼! – user517406 2013-04-11 08:17:53