如何在没有 viewbag、viewdata 或 JavaScript 的情况下动态确定下拉列表中的所选项目
How to dynamically determine the selected item in a dropdownlist without viewbag, viewdata, or JavaScript
保存我有一个对象 Mytype
,它有一个对象 item
都有唯一的 ID,所以 ID1 和 ID2。
我有一个编辑表单,数据是根据Mytype的ID加载的,ID1。
public void Load(int id)
{
var db = new dbEntities();
Mytypes = db.MyTypes.ToList();
MyTypeList = new SelectList(Mytypes, "ID", "Name");
// etc ....
我有一个下拉列表,希望它落在与属于 Mytype 且 ID1 的项目具有相同 ID 的项目上。
@Html.DropDownList("MyType_ID", Model.MyTypeList,
htmlAttributes: new { @class = "form-control",
required = "required", autofocus = "autofocus" })
是否可以在不使用 ViewBag
或 ViewData
或 JS
的情况下执行此操作?
假设您的模型有一个名为 MyType_ID
的 属性,然后将其值设置为与选项值之一相匹配,在呈现视图时将选择该选项
public class MyModel
{
public string MyType_ID { get; set; }
public IEnumerable<SelectListItem> MyTypeList { get; set; }
....
}
并在控制器中
MyModel model = new MyModel()
{
MyType_ID = "ID2",
MyTypeList = new SelectList(Mytypes, "ID", "Name")
};
return View(model);
并在视图中
@Html.DropDownList("MyType_ID", Model.MyTypeList, new { @class = "form-control", autofocus = "autofocus" })
或者最好使用强类型 xxxFor()
方法
@Html.DropDownListFor(m => m.MyType_ID, Model.MyTypeList, new { @class = "form-control", autofocus = "autofocus" })
保存我有一个对象 Mytype
,它有一个对象 item
都有唯一的 ID,所以 ID1 和 ID2。
我有一个编辑表单,数据是根据Mytype的ID加载的,ID1。
public void Load(int id)
{
var db = new dbEntities();
Mytypes = db.MyTypes.ToList();
MyTypeList = new SelectList(Mytypes, "ID", "Name");
// etc ....
我有一个下拉列表,希望它落在与属于 Mytype 且 ID1 的项目具有相同 ID 的项目上。
@Html.DropDownList("MyType_ID", Model.MyTypeList,
htmlAttributes: new { @class = "form-control",
required = "required", autofocus = "autofocus" })
是否可以在不使用 ViewBag
或 ViewData
或 JS
的情况下执行此操作?
假设您的模型有一个名为 MyType_ID
的 属性,然后将其值设置为与选项值之一相匹配,在呈现视图时将选择该选项
public class MyModel
{
public string MyType_ID { get; set; }
public IEnumerable<SelectListItem> MyTypeList { get; set; }
....
}
并在控制器中
MyModel model = new MyModel()
{
MyType_ID = "ID2",
MyTypeList = new SelectList(Mytypes, "ID", "Name")
};
return View(model);
并在视图中
@Html.DropDownList("MyType_ID", Model.MyTypeList, new { @class = "form-control", autofocus = "autofocus" })
或者最好使用强类型 xxxFor()
方法
@Html.DropDownListFor(m => m.MyType_ID, Model.MyTypeList, new { @class = "form-control", autofocus = "autofocus" })