2010-08-26 44 views
0

我的路線是www.xxxxxxx.com/taxes/us/all-states/all-taxes/2010/q1和www.xxxxxxx.com/taxes/us/alsalka/all-taxes/RouteLink問題

  routes.MapRoute(
      "TaxReport", // Route name 
      "taxes/us/{state}/{taxType}/{year}/{quarter}", // URL with parameters 
      new 
      { 
       controller = "TaxViewer", 
       action = "TaxReport", 
       taxType = "all-taxes", 
       year = "", 
       quarter = "Q1" 
      } // Parameter defaults 
     ); 

我的呼喚<%= Html.RouteLink(state.State, "TaxReport", new { state = state.StateUrlCode, taxType = Model.TaxTypes.SelectedValue })%>

它創建阿拉斯加 我不知道爲什麼。路線工作正常,當我有"{state}/{taxType}/{year}/{quarter}" ,但現在它無法正常工作。

回答

2

我不知道你期待什麼類型的輸出,但你不是在一年傳球和

Html.RouteLink("AK", "TaxReport", new { state="AK", year=2010, taxType="all-taxes" }) 

與動作像

public ActionResult TaxReport(string taxType, int year, string quarter) { 
    return View(); 
} 

似乎工作就好了 - 它不起作用?

+0

因爲它是可選的。 – 2010-08-26 19:12:54

+0

然後你應該將它更改爲'year = UrlParameter.Optional'並確保你的ActionResult使用'int? year'作爲參數 – Buildstarted 2010-08-26 19:36:32

+0

其實我注意到你的年份是一個字符串,所以你可以使用'字符串年份' - 希望這對你有用:) – Buildstarted 2010-08-26 19:48:39