カレンダーを返すページを含む検索フォームがあります。一番上にいくつかの検索条件があり、それが1つの値だけの場合はすべて正常に機能しますが、リストの場合は機能しません。モデルで次の月のURLを作成したい場合、次のようなものがあります。
public ActionResult GetUrl()
{
var action = GetBaseAction();
if (SelectedDivisions.Any()) action.AddRouteValue("SelectedDisions", SelectedDivisions.ToArray());
if (RoomId.HasValue) action.AddRouteValue("RoomId", RoomId.Value);
if (TeacherId.HasValue) action.AddRouteValue("TeacherId", TeacherId.Value);
if (Month.HasValue) action.AddRouteValue("Month", Month.Value);
if (Year.HasValue) action.AddRouteValue("Year", Year.Value);
if (Day.HasValue) action.AddRouteValue("Day", Day.Value);
return action;
}
翌月のURLにパラメータを追加します。
http://afi.local/coursesession/calendar?Month=9&Year=2012&Day=18&ViewType=weekly
ただし、複数の部門を選択できるため、チェックボックスのリストであるため、フォームを投稿すると、次のURLが表示されます。
問題は、同じキーを2回追加すると例外がスローされ、クエリ文字列に複数の分割を使用してURLを再構築する方法がわからないことです。
助けてくれてありがとう!