2011-02-04 97 views
0

我有以下ViewModel包含“NumberOfAdults”字段。下拉ASP.NET MVC 2

public class SearchView 
{ 
    public int NumberOfAdults { get; set; } 
    // More fields... 

} 

假设它会有一些值(可以说5)从一些配置文件填充,我有一个强类型的视图。填充包含文本和值1,2,3,4,5而没有硬编码的下拉列表的最佳方式是<Select...><Option value="1">1</Option></Select>?有没有一种MVC的方式来做到这一点?

回答

1

如果有一个我没有想到的助手可以更优雅地构建SelectList,那么我不会感到惊讶,但这是有效的。

<% 
     // Build a list of SelectListItem from 1 to N 
     List<SelectListItem> options = new List<SelectListItem>(); 
     for (int i = 1; i <= Model.NumberOfAdults; i++) 
     { 
      string stringValue = i.ToString(); 
      SelectListItem item = new SelectListItem() { Value = stringValue, Text = stringValue }; 
      options.Add(item); 
     } 
    %> 

    <%= Html.DropDownList("yourName", options) %> 

这使得:

<select id="yourName" name="yourName"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    <option value="5">5</option> 
</select> 
+0

感谢@druttka – Alex 2011-02-04 20:08:48