2016-11-23 53 views
0

是否可以在cshtml 中显示普通html下拉列表的模型,还是应该单独使用ajax?什么是最好的选择? 将模型显示到非剃须刀下拉列表

  @foreach (var item in Model) 
 
      { 
 
       <tr>    
 
        <td>@Html.DisplayFor(modelItem => item.ReservationId)</td> 
 
        <td>@Html.DisplayFor(modelItem => item.ReservationStartDate)</td> 
 
        <td>@Html.DisplayFor(modelItem => item.ReservationEndDate)</td> 
 
        <td>@Html.DisplayFor(modelItem => item.ReservationAdult)</td> 
 
        <td>@Html.DisplayFor(modelItem => item.ReservationChildren)</td> 
 
        <td>@Html.DisplayFor(modelItem => item.ReservationRoomDesc)</td> 
 
        <td>@Html.DisplayFor(modelItem => item.ReservationRoomType)</td> 
 
        <td><select id="hotelroom" name="cs3" class="cs3 form-control input-small"></select></td> 
 
        <td>@Html.DisplayFor(modelItem => item.ReservationRoomStatus)</td>  
 
        <td><input type="button" id="editTable"></td> 
 
       </tr> 
 
      }

回答

0

您可以创建一个下拉列表,像这样:

@Html.DropDownListFor(
    modelItem => modelItem.AvailableHotelRoomOptions, 
    new SelectList(Model.AvailableHotelRoomOptions.Select(@r => @r.OptionName)), 
    new { @id = "hotelroom", @class = "cs3 form-control input-small" } 
) 

或者这样:

@Html.DropDownListFor(
    modelItem => modelItem.AvailableHotelRoomOptions, 
    new SelectList(Model.AvailableHotelRoomOptions, "OptionId", "OptionValue"), 
    new { @id = "hotelroom", @class = "cs3 form-control input-small" } 
) 
0

您可以使用剃刀呈现<option>标签像任何其他标记。

我假设你有一个IEnumerable<SelectListItem> AvailableHotelRoomOptions以及你的模型中的潜在选项。

<td> 
    <select id="hotelroom" name="cs3" class="cs3 form-control input-small"> 
    @foreach(var selectListItem in Model.AvailableHotelRoomOptions) { 
     @{ string selectedAttr = selectListItem.Selected ? "selected = \"selected\"" : string.Empty; } 
     <option value="@selectListItem.Value" @selectedAttr> 
      @selectListItem.Text 
     </option> 
    } 
    </select> 
</td> 

PS:确保<select>匹配的ID和Name属性由MVC模型绑定器预期的命名惯例,因此它可以被绑定回来了!