ASP.NET Core:标记助手“选择”为空

Ole*_* Sh 0 html c# select tag-helpers asp.net-core

我需要一个带有select元素的视图。我有以下VM类:

public class EditTicketVM
{
    public EditTicketVM()
    {
        Statuses = new SelectList(new List<SelectListItem>{
            new SelectListItem("Open", "open"),
            new SelectListItem("Pending", "pending"),
            new SelectListItem("Hold", "hold"),
            new SelectListItem("Solved", "solved"),
            new SelectListItem("Closed", "closed"),
        });

    }

    public string Description { get; set; }
    public string Subject { get; set; }
    public string Status { get; set; }

    public SelectList Statuses { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

并选择页面上的元素:

<select asp-for="Status" class="form-control" asp-items="Model.Statuses" />
Run Code Online (Sandbox Code Playgroud)

但是在结果页面上,此元素为空:

在此处输入图片说明

我的代码有什么不正确?

Tan*_*jel 5

我已经对您的代码进行了测试。问题出在您的select标签中。您正在使用自动关闭选择标签。这是行不通的。编写您的选择标签,如下所示:

<select asp-for="Status" class="form-control" asp-items="Model.Statuses">
   <option value="">Select Status</option>
</select>
Run Code Online (Sandbox Code Playgroud)

您的SelectList初始化也有问题。您初始化的方式SelectList无效。初始化SelectList如下:

public EditTicketVM()
{
   Statuses = new SelectList(new List<SelectListItem> {
       new SelectListItem(){Text = "Open", Value = "open"},
       new SelectListItem(){Text = "Pending", Value = "pending"},
       new SelectListItem(){Text = "Hold", Value = "hold"},
       new SelectListItem(){Text = "Solved", Value = "solved"},
       new SelectListItem(){Text = "Closed", Value = "closed"},
    },"Value","Text");
}
Run Code Online (Sandbox Code Playgroud)