选择Tag Helper ASP .NET CORE 2.0未设置选定值

时间:2017-09-05 14:15:50

标签: c# razor asp.net-core asp.net-core-tag-helpers

我正在尝试根据此线程Select Tag Helper in ASP.NET Core MVC在ASP .NET Core 2.0 MVC应用程序中使用select tag helper。

这是我的观点模型:

public class SensorEditViewModel
{
    public int SensorID { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public string Uid { get; set; }
    public string AE_SN { get; set; }
    public DateTime SubscriptionEndDate { get; set; }
    public string Type { get; set; }
    public bool sensorAccessApproved { get; set; }

    public string UserId { get; set; }
    public SelectList UserEmailList { get; set; }
}

以下是GET的一部分,其中模型填充了propper SelectList和UserId并推送到视图:

var users = _context.Users.OrderBy(u => u.UserName).Select(x => new { Text = x.Email, Value = x.Id });
model.UserEmailList = new SelectList(users, "Value", "Text");
model.Id = ownerId;

return View(model);

最后在编辑视图中我正在使用Select TagHelper:

<div class="form-group">
    <label class="control-label">User Email</label>
    <select asp-for="Id" asp-items="@Model.UserEmailList" class="form-control" ></select>
</div>

但我的问题是Select未预设为在控制器中选择了值(model.Id = ownerId;)。你有什么可能是错的线索吗?感谢。

1 个答案:

答案 0 :(得分:0)

您需要将所选值传递给SelectList构造函数:

model.UserEmailList = new SelectList(users, "Value", "Text", ownerId)

MS docs

中的更多信息