我正在使用 Asp.net 和 MVC,創建一個代碼,用戶需要在其中輸入月份和年份來執行搜索。我為一年中的幾個月創??建了一個 Enum,但我找不到為這些年創建一個 Enum 是“正確的”,因為我必須手動填充并每年添加一個新值。
在我的 Cshtml 中,我是這樣做的
<select name="ano">
@for (int i = DateTime.Now.Year; i > 1999; i--)
{
<option>@i</option>
}
</select>
但是為了達到 MVC 標準,我想將此資訊放在我的模型中的 Enum 中。我可以做類似的事情來動態地將年份放在列舉中嗎?
uj5u.com熱心網友回復:
MVC 并沒有規定一切都必須是一個類或列舉。讓列舉成員代表年份是沒有意義的。
你打算給它們起什么名字,Y2021然后去掉Y? 還是使用它們的基礎數值,而忽略標簽?
只需使用回圈和整數,就像您現在所做的那樣。
uj5u.com熱心網友回復:
要接近 MVC 標準,您不需要創建任何列舉,您必須創建一個模型
public ViewModel
{
public int Year {get;set;}
public List<SelectListItem> Years {get; set;}
}
和控制器動作
public ActionResult GetYear()
{
var years = new List<SelectListItem>();
for (var i = DateTime.Now.Year; i >= 1999 ; i--)
years.Add ( new SelectListItem { Value=i.ToString(),Text=i.ToString()});
var model=new ViewModel{ Year=2021,Years= years});
return View(model);
}
并查看 GetYear.cshtml
@model ViewModel
.....
<select class="form-control" asp-for="@Model.Year" asp-items="@Model.Years"></select>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/365125.html
標籤:C# asp.net-mvc 剃刀 枚举
