获取所选的选项 - Webmatrix

时间:2014-07-21 15:26:48

标签: razor webmatrix

我有一个带有下拉框的表单,然后您有一个列表,其中包含已插入的所有ID,您可以编辑这些ID,我的问题是。如何获得表单提交时选择的选项?

这是提交表单的下拉列表

<select name="nivelSeveridade">
                                     <option disabled>-- Selecionar Nível Severidade --</option>
                                     <option>Alerta CC4</option>
                                     <option>Alerta CC3</option>
                                     <option>Alerta CC2</option>
                                     <option>Alerta CC1</option>
</select>

这是我在编辑页面上尝试的内容:

<select name="nivelSeveridade">
                                     <option disabled>-- Selecionar Nível Severidade --</option>
                                     <option>@row.nivelSeveridade</option>
                                     <option>Alerta CC4</option>
                                     <option>Alerta CC3</option>
                                     <option>Alerta CC2</option>
                                     <option>Alerta CC1</option>
</select>

如您所见,它复制了所选的选项。例如,如果选择的选项是&#34; Alerta CC4&#34;我将有两个同名的选项。

1 个答案:

答案 0 :(得分:1)

标记为“已选择”&#39;如果下拉列表的选项与给定值相同,则必须将给定值与任何选项的值进行比较,并相应地设置所选属性。您可以使用下拉列表的所有值创建一个列表,或者从db表中获取它,并使用foreach循环创建下拉列表来测试它们的相等性。

在您的情况下,您可以尝试以下方式:

@{
    List<string> options = new List<string>();
    options.Add("Alerta CC4");
    options.Add("Alerta CC3");
    options.Add("Alerta CC2");
    options.Add("Alerta CC1");
}

<form method="post">
    <select name="nivelSeveridade">
        <option disabled>-- Selecionar Nível Severidade --</option>
        @foreach(var option in options){
            if(option == row.nivelSeveridade){
                <option selected="selected">@option</option>
            } else {
                <option>@option</option>
            }
        }
    </select>
    <input type="submit"/>
</form>

实际上,Razor v2.0包含一些增强功能作为条件属性,可以大大简化以前代码的测试部分。条件属性被设置为传递给它们的布尔值的结果,结果代码可能如下:

@{
    List<string> options = new List<string>();
    options.Add("Alerta CC4");
    options.Add("Alerta CC3");
    options.Add("Alerta CC2");
    options.Add("Alerta CC1");
}

<form method="post">
    <select name="nivelSeveridade">
        <option disabled>-- Selecionar Nível Severidade --</option>
        @foreach(var option in options){
            <option selected="@(option == row.nivelSeveridade)">@option</option>
        }
    </select>
    <input type="submit"/>
</form>