私はコントローラーに次のコードを持っています:
public ActionResult Index(string date)
{
var topsong = db.TopSongs;
var topDate = db.TopDates;
var latestDate = topDate.OrderByDescending(d => d.Date).FirstOrDefault();
if (date == "PreviousDate")
{
latestDate = topDate.Where(d => d.Date < latestDate.Date).OrderByDescending(d => d.Date).FirstOrDefault();
}
if (date == "NextDate")
{
latestDate = topDate.Where(d => d.Date > latestDate.Date).OrderBy(d => d.Date).FirstOrDefault();
}
....
return View();
}
ビューのコードは次のとおりです。
@Html.ActionLink("Previous Week's Songs", "Index", new { date = "PreviousDate" }) <br />
@Html.ActionLink("Next Week's Songs", "Index", new { date = "NextDate" })
ユーザーがPreviousDateをクリックすると、コントローラーに返送され、前の日付が選択されます。初めてそれはうまくいきます。問題は2回目になります。latestDateは再度計算されますが、latestDateはlatestDateを再度計算しないため、基本的にPreviousDateを使用する必要があります。PreviousDateを永続化する方法はありますか?または、ビューから戻しますか?
次に例を示します。latestDateが2012年8月27日の場合、previousDateを押すと最初に読み込まれます。日付は2012年8月25日ですが、2012年8月25日をlatestDateとして使用する代わりにPreviousDateをもう一度押すと、08が再び使用されます。 /27/2012を最新の日付として。
TopDateクラス:
public class Top10Date
{
[Key]
public int DateId { get; set; }
public DateTime Date { get; set; }
}