C# ASP.NET C将变量中的数据作为选定值传递到选择列表中

C# ASP.NET C将变量中的数据作为选定值传递到选择列表中,c#,html,asp.net,C#,Html,Asp.net,我希望有人能帮助我。我已经试了很长时间了,似乎找不到答案 我有一个.cshtml页面,从SQL表中检索了一个值,并将其传递到一个变量中。我可以用下面的值填充文本框 <input type="text" id="priority" name="Priority" value="@priority"> 但是,我希望将变量中包含的值传递给选择列表,而不是文本框。我试过下面的方法,但不起作用 <select id="priority" name="Priority" value="@

我希望有人能帮助我。我已经试了很长时间了,似乎找不到答案

我有一个.cshtml页面,从SQL表中检索了一个值,并将其传递到一个变量中。我可以用下面的值填充文本框

<input type="text" id="priority" name="Priority" value="@priority">
但是,我希望将变量中包含的值传递给选择列表,而不是文本框。我试过下面的方法,但不起作用

<select id="priority" name="Priority" value="@priority" >
    <option value="">Please choose...</option>
    <option value="Low">Low</option>
    <option value="Medium">Medium</option>
    <option value="High">High</option>
</select>
我知道我可以将@priority放在标记中,但这会使相同值的两个条目出现在列表中

我希望用户能够选择将选择列表保留为与变量相同的值,或者从列表中的任何其他选项中进行选择

有人能帮我吗


非常感谢

我假设你使用的是Razor语法,你可以直接写这样的东西,我在这个窗口中直接写的,没有编辑器,所以如果我遗漏了大括号或其他东西,请原谅:

<select id="priority" name="Priority" value="@priority" >
   <option value="">Please choose...</option>
   <option @{if(priority.Equals("Low")){<text>selected</text>}} value="Low">Low</option>
   <option @{if(priority.Equals("Medium")){<text>selected</text>}} value="Medium">Medium</option>
   <option @{if(priority.Equals("High")){<text>selected</text>}} value="High">High</option>
</select>

或者,如果使用模型,则可以使用Html.DropDownListFor方法

,即使未使用强类型模型,也可以使用Html下拉列表功能

@Html.DropDownList("priority", new []
{
    new SelectListItem(){ Selected = false, Text = "Please choose . . .", Value=""},
    new SelectListItem(){ Selected = (priority == "High"), Text = "High", Value = "High"},
    new SelectListItem(){ Selected = (priority == "Medium"), Text = "Medium", Value = "Medium"},
    new SelectListItem(){ Selected = (priority == "Low"), Text = "Low", Value = "Low"}
})