asp.net core <select> with tag-helpers,选择特定的 <option> 标签

asp.net core <select> with tag-helpers, make a specif <option> tag be selected

我正在使用 ASP.NET Core 和 .NET 6。

我有一个视图模型:

class SomeModel {
 
    public int SelectedProjectId {get; set; } // This is the current project.
    // Some more properties.
 
}

我的select:

 <select asp-for="ProjectId" asp-items="@(new SelectList(projects, nameof(Project.ProjectId), nameof(Project.Name)))"></select>

这很好用,但我的问题是,select 用于编辑现有数据,所以我如何确保 option-tag 的值为 SelectedProjectId selected?

根据您分享的代码,尝试以下...

<select asp-for="ProjectId" asp-items="@(new SelectList(projects, nameof(Project.ProjectId), nameof(Project.Name), SomeModel.SelectedProjectId))"></select>

您使用所选值将第三个参数添加到 SelectList。

这里是SelectList构造函数的参考:

https://docs.microsoft.com/en-us/dotnet/api/system.web.mvc.selectlist.-ctor?view=aspnet-mvc-5.2#system-web-mvc-selectlist-ctor(system-collections-ienumerable-system-string-system-string-system-object)