簡體   English   中英

嘗試在ASP.NET MVC視圖中顯示下拉列表時出錯

[英]Error trying to display a dropdownlist in ASP.NET MVC view

我的模型中有以下代碼

    [NoCache]
    public IEnumerable GatePassTypeList()
    {
        IDictionary<string, IEnumerable<SelectListItem>> gatePassTypelist = new Dictionary<string, IEnumerable<SelectListItem>>();
        List<SelectListItem> gatePassType = new List<SelectListItem>();
        var gatePassData = this.db.GatePassType.OrderBy(r => r.GatePassTypeName).Select(r => r).ToList();
        foreach (var item in gatePassData)
        {
            gatePassType.Add(new SelectListItem { Text = item.GatePassTypeName, Value = item.GatePassTypeID.ToString() });
        }

        gatePassTypelist.Add(string.Empty, gatePassType);
        return gatePassTypelist;
    }

在我的控制器中,我有以下操作

 [NoCache]
    public ActionResult GatePassList()
    {
        ViewBag.GatePassTypeList = this.myModel.GatePassTypeList();
        return this.View(this.gatePassEntryModel.GetAllGatePasses());
    }

最后在我看來 ,我有以下代碼

<td>
@Html.DropDownList("ddlGatePassTypeList", ViewBag.GatePassTypeList as IDictionary<string, IEnumerable<SelectListItem>>, "[All]", new { @multiple = "multiple" })
</td>

我要實現的是顯示GatePass類型的列表,但視圖中的上一行在Elmah錯誤日志中拋出了以下消息。

'System.Web.Mvc.HtmlHelper>'不包含'DropDownList'的定義,最佳擴展方法重載'System.Web.Mvc.Html.SelectExtensions.DropDownList(System.Web.Mvc.HtmlHelper,字符串,系統。 Collections.Generic.IEnumerable,字符串,對象)'有一些無效的參數

我猜這里的問題是你沒有從字典中刪除元素,問題在這條線上

ViewBag.GatePassTypeList = this.myModel.GatePassTypeList();

因為此this.myModel.GatePassTypeList()返回字典

應該是這樣,這不是完美的代碼,但是事情是您需要在將項目添加到下拉列表之后傳遞選擇列表

   [NoCache]
    public ActionResult GatePassList()
    {
        var dic = this.myModel.GatePassTypeList()
                     as IDictionary<string, IEnumerable<SelectListItem>;
        ViewBag.GatePassTypeList = dic["entrykey"] as List<SelectListItem>;
        return this.View(this.gatePassEntryModel.GetAllGatePasses());
    }

    @Html.DropDownList("Mobiledropdown2", ViewBag.GatePassTypeList as SelectList)  

暫無
暫無

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

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