我正在使用 webmatrix、razor 语法和 cshtml 文件。
我有一个数据库记录的“编辑”页面,其中包含一个选择框(id =“selStatus”)。我试图根据正在编辑的当前记录的值动态设置选择框的“选定”值。
我在本地变量中有当前值或其索引,但我似乎无法将此值分配回选择。
if (currentStatus=="Completed"){
selStatus.options[1].selected=true;
}
RES = 错误:当前上下文中不存在名称“selStatus”。
我在这里遗漏了一些明显的东西,但似乎无法理解。任何想法表示赞赏。谢谢
最佳答案
除了使用 Javascript,您还可以在创建下拉菜单时设置所选项目。
当您有动态生成的下拉列表时,这将起作用。如果您的下拉列表是静态的,那么您需要使用 javascript。
首先创建将填充下拉列表的数据:
var selectQ = "SELECT StatusName, StatusID FROM MyStatusTable";
List<SelectListItem> statusdropdownlistdata = new List<SelectListItem>();
bool isSelected = false;
foreach(var item in db.Query(selectQ)){
isSelected = false;
if(item.StatusName == "Completed"){
isSelected = true;
}
statusdropdownlistdata.Add(new SelectList Item
{
Text = item.StatusName,
Value = item.StatusID.ToString(),
Selected = isSelected
});
}
以上将创建您要添加到下拉列表中的数据并选择符合条件的项目。您必须进行修改才能使用您的特定标准和逻辑。
接下来,将其添加到 cshtml 的 HTML 部分:
@Html.DropDownList("StatusTypes", statusdropdownlistdata)
以上将呈现带有 ID="StatusTypes"的下拉列表和带有所选项目的下拉数据。
查找 Html.DropdownList,您可能会找到其他选项和方法来执行此操作。
关于razor - 如何设置选择元素的 selected 属性的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5688282/