2013-04-19 3 views
11

В моей бритве я генерирую раскрывающийся список, как это.Как сгенерировать dropdownlist в asp.net MVC razor

@{ 
     var listItems = new List<ListItem> 
     { 
       new ListItem { Text = "Home To School", Value = "0" }, 
       new ListItem { Text = "School To Home", Value = "1" } 
     }; 
    } 

@Html.DropDownList("Direction", new SelectList(listItems),new {onchange = "getAlldata()"}) 

HTML генерируется из этого, как этот

<select id="Direction" name="Direction" onchange="getAlldata()"> 
<option>Home To School</option> 
<option>School To Home</option> 
</select> 

, но я хочу, чтобы генерировать HTML-то вроде этого

<select id="Direction" name="Direction" onchange="getAlldata()"> 
<option value="0">Home To School</option> 
<option value="1">School To Home</option> 
</select> 

Как я могу это сделать.

ответ

26

Используйте его как это

@Html.DropDownList("Direction", new SelectList(listItems , "Value" , "Text"),new {onchange = "getAlldata()"}) 
+0

ой, я сделал это, прежде чем я забыл. –

+0

Где вы помещаете определение функции «getAlldata()»? – shim

+2

Или просто '@ Html.DropDownList (« Направление », llistItems, new {onchange =" getAlldata() "})' - его бессмысленный дополнительный ovrhead для создания второго 'SelectList' из существующего –

4

Here некоторые примеры того, как построить DropDownList с Razor, как один с помощью SelectListItem:

public ActionResult Index() 
{ 
    var db = new NorthwindEntities(); 
    IEnumerable<SelectListItem> items = db.Categories 
    .Select(c => new SelectListItem 
        { 
        Value = c.CategoryID.ToString(), 
        Text = c.CategoryName 
        }); 
    ViewBag.CategoryID = items; 
    return View(); 
} 

EDIT:

Проверьте это:

@Html.DropDownList("Direction", new List<SelectListItem> 
{ 
    new SelectListItem{ Text = "Home To School", Value = "0" }, 
    new SelectListItem{ Text = "School To Home", Value = "1" } 
},new {onchange = "getAlldata()"}) 
+0

Я должен сгенерировать свой раскрывающийся список только на виду. Также он статичен, как показано в моем вопросе. –

+0

@vaibhavshah Это был просто пример использования коллекции 'SelectListItem' qouted из статьи, чтобы показать один из способов сделать это, я не понимаю -1. Я добавил еще один способ, адаптированный к вашим данным. –

+0

@vaibhavshah Не могли бы вы объяснить это? Я дал вам статью с различными ответами на этот вопрос и процитировал один из них. Я не вижу причин для ниспровержения. –