在Help.cs中创建List<SelectListItem>并随处使用更好吗? ASP.NET Core 剃刀

问题描述 投票:0回答:1

需要建议-什么更好? 我有几个页面需要在 @Html.DropDownListFor() 中选择是/否选项

我可以在每一页创建列表

List<SelectListItem> YesNoOptions = new List<SelectListItem>();
YesNoOptions.Clear();
YesNoOptions.Add(new SelectListItem("No", "false"));
YesNoOptions.Add(new SelectListItem("Yes", "true"));

我可以在 Help.cs 中创建它并使用它

public List<SelectListItem> YesNoOptions = Help.YesNoOptions;

我担心如果这是一种不好的做法,也许有更好的方法

asp.net-core html.dropdownlistfor
1个回答
0
投票

我建议使用

@Html.GetEnumSelectList()
助手。这是下面的例子。

视图数据模型声明:

public enum UserSelectOptions
{
    [Display(Name = "-Select a value-")]
    Unassigned,
    [Display(Name = "YES")]
    Yes = 1,
    [Display(Name = "NO")]
    No = 2        
}

public class EnumModel
{
    public UserSelectOptions Selected { get; set; } = UserSelectOptions.Unassigned;
}

控制器端相关代码:

public IActionResult ShowEnumList()
{
    return View(new UserSelectOptions());
}

[HttpPost]
public IActionResult ShowEnumList(UserSelectOptions selection)
{
    // TODO: ...           
    return View("ShowEnumList", selection);
}

ShowEnumList.cshtml
观点:

@model EnumModel

<form method="post">
    <select class="form-control" asp-for="Selected" asp-items="@Html.GetEnumSelectList<UserSelectOptions>()" />
    <button type="submit" class="btn btn-primary">Save</button>
</form>
© www.soinside.com 2019 - 2024. All rights reserved.