簡體   English   中英

如何將逗號分隔的值列表綁定到列表框

[英]How to bind a list of comma separated values to a Listbox

在我的asp.net mvc應用程序中,我有一個create視圖,在這里我需要選擇公司列表,所以我有:

@{
   var unitOfWork = new UnitOfWork();
   var empresas = unitOfWork.EmpresaRepository.Get();
 }
   <div class="form-group">
    @Html.Label("Empresa", new { @class = "control-label col-md-2" })

    <div class="col-md-10">
     @Html.ListBox("Empresa", new SelectList(empresas, "Id", "Nombre"), new { @class = "form-control" })
    </div>
   </div>

基本上,我從存儲庫中選擇所有公司,然后將它們呈現在列表框中,當我單擊“保存”時,將所選公司保存為以逗號分隔的IDS列表,請檢查表單收集

 //Setting extended property lookup name
 var extPropLookupName = $"extension_{SettingsHelper.ClientId.Replace("-", "")}_{"Compania"}";

 //TO BE FINISHED
 user.SetExtendedProperty(extPropLookupName, formCollection["Empresa"]);
 await user.UpdateAsync();

現在,我正在嘗試實現EDIT視圖。 所以我知道如何獲取逗號分隔的列表,我也知道如何獲取公司列表,但是ListBox應該顯示哪些是SELECTED公司。

@{
   var unitOfWork = new UnitOfWork();
   var empresas = unitOfWork.EmpresaRepository.Get();
   var keyvaluepair = Model.GetExtendedProperties().Where(prop => prop.Key == extPropLookupName).FirstOrDefault();
   if (keyvaluepair.Value != null)
   {
   <div class="form-group">
   @Html.Label("Empresa", new { @class = "control-label col-md-2" })

     <div class="col-md-10">
      @Html.ListBox("Empresa", new SelectList(empresas, "Id", "Nombre"),  new { @class = "form-control" })
     </div>
   </div>
   }
}

現在,它呈現了公司列表,但未選擇任何一個,我知道keyvaluepair.Value將具有“ 1,2,3”。

如何將其綁定到列表框,以便呈現所選項目?

支持沒有區別,您仍然可以使用視圖模型以強類型化的方式處理數據。 只需創建一個類,該類具有可表示要在AD中使用的屬性,然后將AD值映射到該類/從該類映射即可。

然后,您可以執行以下操作:

public class UserViewModel
{
    ...

    public List<string> SelectedCompanies { get; set; }
}

在您的行動中:

var model = new UserViewModel
{
    ...

    SelectedCompanies = user.GetExtendedProperty(extPropLookupName).Split(',')
}

在發布后:

user.SetExtendedProperty(extPropLookupName, string.Join(",", model.SelectedCompanies);

然后,在您看來:

@Html.ListBoxFor(m => m.SelectedCompanies, new SelectList(empresas, "Id", "Nombre"),  new { @class = "form-control" })

暫無
暫無

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

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