allSundaysInMonth的ViewModel,我保持不变:
namespace TradeUK.Admin.Web.ViewModels
{
public class SundaysInMonthViewModel
{
public IEnumerable<SelectListItem> AllSundays { set; get; }
public string SelectedSunday { set; get; }
}
}
然后在我的行动中新代码:
public ActionResult TradeUKKPISearchesData() //show dropdownlist in the view
{
var now = DateTime.Now;
var lastMonth = now.AddMonths(-1);
var lastMonthSundays = GetDatesOfSundays(lastMonth.Year, lastMonth.Month);
var thisMonthSundays = GetDatesOfSundays(now.Year, now.Month);
var sundaysToTakeFromLastMonth = 2;
var sundays = lastMonthSundays.Skip(Math.Max(0, lastMonthSundays.Count() - sundaysToTakeFromLastMonth)).Take(sundaysToTakeFromLastMonth).Concat(thisMonthSundays);
var allSundaysInThisMonth = new SundaysInMonthViewModel
{
AllSundays = sundays.Select(x => new SelectListItem
{
Value = x.ToString("dd-MM-yyyy"),
Text = x.ToString("dd-MM-yyyy"),
});
//or must I have the code here? not sure how all this works yet
SelectedSunday = sundays.Select(y => new SelectListItem
{
Value =
Text =
})
};
//this is what I meant or can I add this to the above?
var selectedSunday = new SundaysInMonthViewModel{
SelectedSunday = sundays.Select(y => new SelectListItem
{
Value =
})
}
return View(allSundaysInThisMonth);
}
感谢
答案 0 :(得分:0)
public IEnumerable<DateTime> GetDatesOfSundays(int year, int month)
{
var ci = CultureInfo.InvariantCulture;
for (int i = 1; i <= ci.Calendar.GetDaysInMonth(year, month); i++)
{
var date = new DateTime(year, month, i);
if (date.DayOfWeek == DayOfWeek.Sunday)
{
yield return date;
}
}
}
然后在你的控制器中:
public ActionResult TradeUKKPISearchesData()
{
var now = DateTime.Now;
var lastMonth = now.AddMonths(-1);
var lastMonthSundays = GetDatesOfSundays(lastMonth.Year, lastMonth.Month);
var thisMonthSundays = GetDatesOfSundays(now.Year, now.Month);
var sundaysToTakeFromLastMonth = 2;
var sundays = lastMonthSundays
.Skip(Math.Max(0, lastMonthSundays.Count() - sundaysToTakeFromLastMonth))
.Take(sundaysToTakeFromLastMonth)
.Concat(thisMonthSundays);
var allSundaysInThisMonth = new SundaysInMonthViewModel
{
AllSundays = sundays.Select(x => new SelectListItem
{
// TODO: Adjust the formats you want for the
// Value and Text of your ddl
Value = x.ToString("yyyy-MM-dd"),
Text = x.ToString("yyyy-MM-dd"),
}),
SelectedSunday = thisMonthSundays
.Where(x => x < now)
.Last()
.ToString("yyyy-MM-dd")
};
return View(allSundaysInThisMonth);
}
并在您看来:
@model SundaysInMonthViewModel
...
@Html.DropDownListFor(x => x.SelectedSunday, Model.AllSundays)