显示模型到非剃须刀下拉列表
Displaying model to non razor dropdown list
是否可以在 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>
}
您可以像其他任何标签一样使用 Razor 呈现 <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 ModelBinder 预期的命名约定相匹配,以便可以绑定回来!
您可以像这样创建下拉列表:
@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" }
)
是否可以在 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>
}
您可以像其他任何标签一样使用 Razor 呈现 <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 ModelBinder 预期的命名约定相匹配,以便可以绑定回来!
您可以像这样创建下拉列表:
@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" }
)