簡體   English   中英

所需數據未顯示在html.dropdownlist MVC中

[英]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.

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