我有一个带有下拉框的表单,然后您有一个列表,其中包含已插入的所有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;我将有两个同名的选项。
答案 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>