簡體   English   中英

Asp.net Core,在 Razor 頁面中設置多個選定值

[英]Asp.net Core, set multiple selected values in Razor Page

所以,我正在嘗試創建一個多選下拉列表,我想在其中設置一些默認的選定值。
我獲取值並將它們存儲在包含每個值的字符串數組中。
我試圖將它們設置為 1 個字符串,但它不起作用,嘗試將它們設置為一個字符串數組,但它也不起作用。

這是代碼:

<select name="FacultyList" multiple class="sel form-control" asp-for="Faculties" 
id="uniFaculties" asp-items="@(new SelectList(facultyList,"Name","Name",@selectedFaculties))">
</select> 

FacultyList是我從 api 中獲得的值的列表。
selectedFaculties是一個包含選定值的字符串數組。

注意:如果這有所不同,我也在使用 Chosen jQuery 庫。

有一個MultiSelectList可用於此目的:

new MultiSelectList(facultyList, "Name", "Name", @selectedFaculties)

我剛剛從您的代碼中注意到您在select上使用asp-for 這樣做時,您傳遞給SelectListMultiSelectList的選定值將被忽略。 原因是因為它期望所選值位於您要綁定到的Faculties屬性中。 如果您遇到這種情況,這里有一個適合您的示例。

看法

<select name="FacultyList" multiple class="sel form-control" asp-for="SelectedFaculties"
    id="uniFaculties" asp-items="@(new MultiSelectList(Model.AvailableFaculties, "Name", "Name"))">
</select> 

控制器

public IActionResult Faculty()
{
    var vm = new FacultyViewModel
    {
        AvailableFaculties = new List<Faculty>
        {
            new Faculty
            {
                Name = "Arts"
            },
            new Faculty
            {
                Name = "Science"
            },
            new Faculty
            {
                Name = "Mathematics"
            }
        },
        SelectedFaculties = new List<string> { "Arts", "Mathematics" }
    };

    return View(vm);
}

這將選擇ArtsMathematics 請注意,所選值來自我們使用asp-forselect綁定到的同一屬性,並且我們不再將所選值直接傳遞給MultiSelectList

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM