-1
我想將我的模型綁定到.NET中的多選.net MVC。這是我的模型在.net中設置模型中的列表框中的選定值mvc
public class RuoloProgetto
{
[Key]
public int id_ruolo_prog { get; set; }
[Display(Name = "Ruolo")]
public int id_ruolo { get; set; }
[ForeignKey("id_ruolo")]
public virtual Ruolo ruolo { get; set; }
public int id_progetto { get; set; }
//[ForeignKey("id_progetto")]
//public virtual Progetto progetto { get; set; }
[Display(Name = "Utente")]
public string id_utente { get; set; }
[ForeignKey("id_utente")]
public virtual IdentityUser utente { get; set; }
[DisplayName("Carico di lavoro in %")]
[Required]
public int percentuale { get; set; }
public int versione { get; set; }
[DisplayName("Moduli Responsabile")]
public int[] Choices { get; set; }
public virtual List<ModelRP> moduli { get; set; }
}
這是在設定值選擇列表的我的控制器功能:
List<SelectListItem> specifiche = new List<SelectListItem>();
var specifiche2 = db.Specificha.Where(p => p.id_progetto == Progetti.id_progetto).Select(x => new { x.id_specifiche, x.desc_specifiche }).ToList();
foreach (var item in specifiche2)
{
specifiche.Add(new SelectListItem { Value = item.id_specifiche.ToString(), Text = item.desc_specifiche });
}
ViewData["Specs"] = specifiche;
,這是我的觀點:
@Html.ListBoxFor(m => item.Choices,
new MultiSelectList((IEnumerable<SelectListItem>)ViewData["Specs"], "Value", "Text",
item.moduli.Select(fl => new SelectListItem
{
Text = fl.moduloutente.desc_specifiche.ToString(),
Value = fl.moduloutente.id_specifiche.ToString(),
Selected = item.moduli.Any(y => y.id_specifiche == fl.id_specifiche)
})),
new
{
Selected = true,
@Class = "js-example-basic-multiple form-control",
Multiple = "multiple",
@Name = "progetto.ruoloprogetto[" + index + "].Choices",
@Id = "progetto.ruoloprogetto[" + index + "]_Choices",
@Placeholder = "Moduli",
})
的ViewData的來確定!問題在於選定的值!當我檢查即時窗口item.moduli正確填充數據,但沒有任何內容顯示爲在界面中選擇!
有人可以看到我在做什麼錯嗎?
我沒有問題的帖子,因爲我確實得到了被選中的值。我的問題只是填充選定的值。這些不在選項中,而是在列表item.moduli中(它是db中的表模型) – user2622220
您誤解了bind的工作方式 - 您對'Choices'的綁定,如果其值爲null或不包含任何值匹配選項的值,則不會選擇任何內容。然後看看你爲此生成的html如果name屬性真的是''progetto.ruoloprogetto [0] .Choices「'然後你綁定,那麼你有一些其他的綁定問題 - 你是否在做一些集合並試圖覆蓋默認行爲? –
你說得對,我正在搞這個!需要重新開始。你能否建議我爲了在.net中創建一個多選列表框而需要的模型結構?我會很感激! .net,我很新,剛開始幾個月前從零開始學習。另外,順便說一句,我使用的是命名,因爲我正在創建對象,我需要通過索引來區分它們。 – user2622220