没有找到关于此的事情。
我有一个模特:
public class Filter
{
public string No { get; set; }
public DateTime EndTime { get; set; }
public string FilterStatus { get; set; }
}
在我看来,我有第二件事:
<select id="status" name="status" style="width: 120px;font-size: 0.9em; padding: 0;" class="k-dropdown">
<option>-- Select --</option>
<option>Yes</option>
<option>No</option>
</select>
我要做的是选择与Model.FilterStatus相同的选项。例如,如果状态为“是”,则下拉列表中的文本应为“是”。但有可能这样做吗?是否使用javascript?
答案 0 :(得分:1)
您可以使用Html.DropDown帮助程序。这个帮助器使用您显示的选项获得IEnumerable。 在控制器中,您可以在ViewBag中或使用视图模型发送下拉列表的值。视图模型的此属性必须是带有SelectListItem的List,其中包含两个选项Yes和No,然后使用过滤器的值选择正确的选项,如下所示:
ViewBag.Status = new List<SelectListItem>(){
new SelectListItem
{
Value = "Yes",
Text = "Yes",
Selected = yourFilter.FilterStatus //If your status is Yes this will be true
//otherwise false.
},
new SelectListItem
{
Value = "No",
Text = "No",
Selected = yourFilter.FilterStatus //If your status is No this will be true
//otherwise false.
}
};
然后在您的视图中,您可以使用Html帮助程序打印下拉列表:
@Html.DropDownList("Status", "--Select--")
使用ViewBag时要小心,属性的名称必须与帮助程序上的名称相匹配,这将与表单在提交表单时发送回控制器的名称相同。
如果您使用View Model版本,我建议您进行测试,则必须创建该视图模型并将下拉值分配给该属性,如下所示:
//Don't create this class on the controller! This is only as an example.
public class FilterViewModel {
public bool Status {get; set;}
public IEnumerable<SelectListItem> statusDropDown {get; set;}
}
var myViewModel = new FilterViewModel();
myViewModel.statusDropDown = new List<SelectListItem>(){
new SelectListItem
{
Value = "Yes",
Text = "Yes",
Selected = yourFilter.FilterStatus
},
new SelectListItem
{
Value = "No",
Text = "No",
Selected = yourFilter.FilterStatus
}
};
return View(myViewModel);
您可以在视图中使用以下帮助程序:
@model Controllers.YourController.FilterViewModel
@Html.DropDownListFor(model => model.Status, Model.statusDropDown, "--Select--")
答案 1 :(得分:0)
@model Filter
@Html.DropDownListFor(model => model.FilterStatus, new SelectList(
new List<SelectListItem> {
new SelectListItem { Text = "Yes", Value = "Yes" },
new SelectListItem { Text = "No", Value = "No" }
}, "Value", "Text"),
"--- Select Option ---", new { @class = "k-dropdown" })