在 MVC 中获取年份列表
Get list of year in MVC
我应该如何获取基于当前年份到下一个 21 年份生成的年份列表
在控制器方面,我正在尝试获取年份并在视图方面传递该模型
public IList<SelectListItem> GetYear()
{
var Year= "";
//Hear I want to bind the year in for loop for next years like Current year to next 21 year
// Some thing like for loop over year
return Year;
}
public ActionResult PaymentInformation(FormCollection fill)
{
if (User.Identity.IsAuthenticated)
{
int StudentRequestId = 0;
string CurrentURL = "";
foreach (var key in fill.AllKeys)
{
StudentRequestId = Convert.ToInt32(fill["hdstatusstudentrequestid"]);
CurrentURL = Convert.ToString(fill["hdCurrenturl"]);
}
ViewBag.StudentRequestId = StudentRequestId;
ViewBag.CurrentURL = CurrentURL;
var Year = GetYear();
var model = new PaymentInformation { AvailableYear = Year };
return View(model);
}
else
{
return RedirectToAction("Index", "Home");
}
}
而我的模型方面是我创建了列表项以获取年份列表
public PaymentInformation()
{
AvailableYear = new List<SelectListItem>();
}
在视图方面,我编写了代码来绑定从 AvailableYear 获取的年份
@Html.DropDownListFor(model => model.Year, Model.AvailableYear, new { @class = "form-control" })
如何从控制器绑定年份列表并将其显示在我的上方视图端?
添加一个 for
循环,将 21 个项目添加到 SelectListItem 列表,从当前年份开始每年一个项目
public IList<SelectListItem> GetYear()
{
const int numberOfYears = 21;
var startYear = DateTime.Now.Year;
var endYear = startYear + numberOfYears;
var yearList = new List<SelectListItem>();
for (var i = startYear; i < endYear ; i++)
{
yearList.Add(new SelectListItem() { Value = i.ToString(), Text = i.ToString() });
}
return yearList;
}
如果您希望 n
(例如:21)年根据需要从明年开始而不是今年开始,请将 <
更新为 <=
。
此外,如果您有视图模型,为什么要使用动态 ViewBag
来传输数据?将 StudentRequestId
和 CurrentURL
属性添加到您的视图模型 (PaymentInformation
) 并使用它。
您可以按如下方式更改GetYear方法的代码。
public IList<SelectListItem> GetYear()
{
var startYear = DateTime.Now.Year;
var yearList = new List<SelectListItem>();
for (var i = DateTime.Today.Year; i < DateTime.Today.Year + 21; i++)
{
yearList.Add(new SelectListItem { Value = i, Text = i.ToString() });
}
return yearList;
}
我应该如何获取基于当前年份到下一个 21 年份生成的年份列表
在控制器方面,我正在尝试获取年份并在视图方面传递该模型
public IList<SelectListItem> GetYear()
{
var Year= "";
//Hear I want to bind the year in for loop for next years like Current year to next 21 year
// Some thing like for loop over year
return Year;
}
public ActionResult PaymentInformation(FormCollection fill)
{
if (User.Identity.IsAuthenticated)
{
int StudentRequestId = 0;
string CurrentURL = "";
foreach (var key in fill.AllKeys)
{
StudentRequestId = Convert.ToInt32(fill["hdstatusstudentrequestid"]);
CurrentURL = Convert.ToString(fill["hdCurrenturl"]);
}
ViewBag.StudentRequestId = StudentRequestId;
ViewBag.CurrentURL = CurrentURL;
var Year = GetYear();
var model = new PaymentInformation { AvailableYear = Year };
return View(model);
}
else
{
return RedirectToAction("Index", "Home");
}
}
而我的模型方面是我创建了列表项以获取年份列表
public PaymentInformation()
{
AvailableYear = new List<SelectListItem>();
}
在视图方面,我编写了代码来绑定从 AvailableYear 获取的年份
@Html.DropDownListFor(model => model.Year, Model.AvailableYear, new { @class = "form-control" })
如何从控制器绑定年份列表并将其显示在我的上方视图端?
添加一个 for
循环,将 21 个项目添加到 SelectListItem 列表,从当前年份开始每年一个项目
public IList<SelectListItem> GetYear()
{
const int numberOfYears = 21;
var startYear = DateTime.Now.Year;
var endYear = startYear + numberOfYears;
var yearList = new List<SelectListItem>();
for (var i = startYear; i < endYear ; i++)
{
yearList.Add(new SelectListItem() { Value = i.ToString(), Text = i.ToString() });
}
return yearList;
}
如果您希望 n
(例如:21)年根据需要从明年开始而不是今年开始,请将 <
更新为 <=
。
此外,如果您有视图模型,为什么要使用动态 ViewBag
来传输数据?将 StudentRequestId
和 CurrentURL
属性添加到您的视图模型 (PaymentInformation
) 并使用它。
您可以按如下方式更改GetYear方法的代码。
public IList<SelectListItem> GetYear()
{
var startYear = DateTime.Now.Year;
var yearList = new List<SelectListItem>();
for (var i = DateTime.Today.Year; i < DateTime.Today.Year + 21; i++)
{
yearList.Add(new SelectListItem { Value = i, Text = i.ToString() });
}
return yearList;
}