2017-02-02 171 views
0

我想添加項目到DropDownList沒有數據庫。 但輸出只顯示「測試...」ASP.NET MVC如何顯示DropDownList

My Model class。

public class DropDownListData 
{ 
    public DropDownListData() 
    { 
     City = new List<SelectListItem> { }; 
    } 
    public List<SelectListItem> City; 
} 

控制器

public ActionResult Travel() 
{ 
    DropDownListData ddld = new DropDownListData(); 

    ddld.City = new List<SelectListItem> 
    { 
     new SelectListItem {Value = "Paris" ,Text = "Paris"}, 
     new SelectListItem {Value = "Moscow",Text = "Moscow"}, 
     new SelectListItem {Value = "Yerevan" ,Text = "Yerevan" } 
    }; 
    return View(ddld); 
} 

查看

@model ASP.NET.Test.Models.DropDownListData 

@{ 
    Layout = null; 
} 

Testing... 
@{ 
    Html.DropDownList("series", Model.City, "Choose City"); 
} 

爲什麼我看不到的DropDownList。我究竟做錯了什麼?

回答

2

使用下面的代碼直接輸出你的DropDownList預期:

@Html.DropDownList("series", Model.City, "Choose City"); 

目前的使用情況,一般要充當「代碼塊」通過下面的例子作爲證明:

@{ 
    // This code will be executed and can be used to set variables, etc. 
    var answer = 42; 
} 

<!-- This is an example of outputting your value --> 
<p> 
    The answer to the question is <b>@answer</b>. 
</p> 

因此,您當前的代碼只會調用Html.DropDownList()方法,但絕不會實際使用或輸出它。但是,將它與@字符一起預先處理爲表達式並相應地輸出它。

1

你必須使用:的

@Html.DropDownList("series", Model.City, "Choose City") 

代替:

@{ 
    Html.DropDownList("series", Model.City, "Choose City"); 
} 

什麼你所做的僅僅是調用DropDownList的功能,無爲與MvcHtmlString返回。 ReSharper實際上給了我一個警告,即不使用返回值。