簡體   English   中英

提交表單時,MVC MultiSelectList發布NULL

[英]MVC MultiSelectList posts NULL when form is submitted

我很難從MultiSelectList捕獲發布的值。 頁面加載后,將從我模型的列表中成功填充選擇列表控件。 但是,提交表單后,模型列表為空。

這些屬性在我的“聯系人”模型中。 Contact對象僅具有ExternalUserID(int)和PublicName(字符串)屬性。

    public List<Contact> AvailableContacts { get; set; }

    public List<Contact> SelectedContacts { get; set; }

這些控件在我的表單上。

@Html.ListBoxFor(m => m.AvailableContacts,
    new MultiSelectList(Model.AvailableContacts, "ExternalUserID", "PublicName", null),
    new { @class = "form-control", size = "15" })

@Html.ListBoxFor(m => m.SelectedContacts,
    new MultiSelectList(Model.SelectedContacts, "ExternalUserID", "PublicName", null),
    new { @class = "form-control", size = "15" })

這是我的控制器。

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult EditContacts(Contacts model)
{
    if (ModelState.IsValid)
    {
        // Code to save omitted for clarity.
    }
    return View(model);
}

這可能需要進行一些簡單的調整,並且可能在之前曾被詢問過,但是我還沒有找到關於SO的解決方案或在線上的簡潔示例。 如果您傾向於將其標記為重復,則請包含一個鏈接到簡潔示例的鏈接。

謝謝你的幫助。

您需要具有一個屬性以將所選項目綁定到。 多個<Select>綁定到並返回一個值類型數組。

public class MyViewModel
{
  public int[] SelectedContacts { get; set; }
  public List<Contact> AvailableContacts { get; set; }
}

視圖

@Html.ListBoxFor(m => m.SelectedContacts, new SelectList(Model.AvailableContacts, "ExternalUserID", "PublicName"), new { @class = "form-control", size = "15" })

暫無
暫無

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

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