razor - 如何设置选择元素的 selected 属性的值

标签 razor webmatrix

我正在使用 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/

    相关文章:

    c# - 扩展方法中的 HtmlAttributes

    asp.net-mvc - WebMatrix 路由如何工作?

    razor - 在使用WebMatrix + Razor制作的网站上生成站点地图

    asp.net-mvc - SimpleMemership CreateUserAndAccount 自定义

    javascript - 如何访问 @URL.Action() 中的 javascript 变量

    c# - Razor CSHTML 中的 Switch 语句

    asp.net - 来自 ASP.NET 网页 (WebMatrix) 的 jQuery 帖子

    c# - 如何创建 ASP.NET 网页/站点项目?

    c# - Razor:声明式 HTML 助手

    razor - 如何禁用或修改 MVC Razor 文件中的自动格式化?