[英]Required data not displayed in html.dropdownlist MVC
我正在嘗試從模型中填充一些數據以在下拉列表中查看。 為此,我創建了我的模型
模型:
public class NoOfSupportingLanguages
{
public int LanguageId { get; set; }
public string LanguageName { get; set; }
}
public class OrganisationModel
{
public SelectList NoofSupportingLanguages { get; set; }
}
在控制器方面,類似以下內容:
控制器:
public ActionResult Index()
{
List<NoOfSupportingLanguages> LanguageOption = new List<NoOfSupportingLanguages>{
new NoOfSupportingLanguages{ LanguageId = 1, LanguageName="English" },
new NoOfSupportingLanguages{ LanguageId = 2, LanguageName="Arabic" },
new NoOfSupportingLanguages{ LanguageId = 3, LanguageName="French" }
};
SelectList languageList = new SelectList(LanguageOption, "LanguageId");
model.NoofSupportingLanguages = languageList;
return View(model);
}
視圖:
@Html.LabelFor(m => m.NoofSupportingLanguages, "Number of languages to support :")
@Html.DropDownList("ddlNoOfSupportingLanguages", Model.NoofSupportingLanguages)
但在我的下拉菜單中,我得到的值是:
Web.Models.Organisation.NoOfSupportingLanguages
Web.Models.Organisation.NoOfSupportingLanguages
Web.Models.Organisation.NoOfSupportingLanguages
請提出一些幫助。
提前致謝 !!
您的代碼有多個錯誤。 首先,要生成SelectList
您需要提供2個屬性名稱(用於value
屬性和顯示文本),因此需要
SelectList languageList = new SelectList(LanguageOption, "LanguageId", "LanguageName");
接下來,您需要綁定一個屬性,因此您的模型需要包含另一個屬性,例如
public int SelectedLanguage { get; set; }
然后在其
@Html.DropDownListFor(m => m.SelectedLanguage, Model.NoofSupportingLanguages)
因此,當您提交表單時, SelectedLanguage
的值將是所選選項的值。
如果要以干凈的MVC方式進行操作,則應更改模型:
public class OrganisationModel
{
public int SelectedLanguageId { get; set; }
public List<SelectListItem> NoofSupportingLanguages { get; set; }
}
然后在您的控制器中:
public ActionResult Index()
{
List<SelectListItem> LanguageOption = new List<SelectListItem>{
new SelectListItem { Value = 1.ToString(), Text = "English" },
new SelectListItem { Value = 2.ToString(), Text = "Arabic" },
new SelectListItem { Value = 3.ToString(), Text = "French" }
};
//here you can set selected value
model.SelectedLanguageId = 1;
model.NoofSupportingLanguages = LanguageOption;
return View(model);
}
然后您將可以執行以下操作:
@Html.LabelFor(m => m.NoofSupportingLanguages, "Number of languages to support :")
@Html.DropDownListFor(m => m.SelectedLanguageId, Model.NoofSupportingLanguages, "Select Language")
現在,當您發布模式,將自動綁定選擇LanguageId到SelectedLanguageId
模型屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.