C# 如何在服务器上的dropdownlist中获取所选项目的值和文本&

C# 如何在服务器上的dropdownlist中获取所选项目的值和文本&,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,在模型中,我有这个特性 public List<SelectListItem> listikOFProducts = new List<SelectListItem>(); 在视图中,我显示它 <% using(Html.BeginForm("View2","Order")) { %> <div> <%: Html.DropDownList("drop",Model.listikOFProducts) %> <

在模型中,我有这个特性

public List<SelectListItem> listikOFProducts = new List<SelectListItem>();
在视图中,我显示它

<% using(Html.BeginForm("View2","Order"))
{  %>
  <div>
    <%: Html.DropDownList("drop",Model.listikOFProducts) %>
  </div>
  <input type="submit" name="button" value="Add" /> 
<% } %>

在post方法上使用您的id再次获取值

[HttpPost]
 public ActionResult View2(NorthOrder q,int drop, string button)
 {
              if (button == "Add")
       {
string strDDLValue= db.Products.FirstOrDefault(_=>_.ProductID == drop).ProductName;

                       return View();
   }
}

好啊我能做到,但另一种方法。如果我理解正确,没有对db的查询,我就做不到。您可以使用javascript在下拉更改中设置隐藏字段的值,但我认为这不是一个好的做法
[HttpPost]
public ActionResult View2(NorthOrder q, string button)
{
  if (button == "Add")
  {
    string strDDLValue = Request.Form["drop"].ToString();//ID of dropdown selected  item
    return View();
  }
[HttpPost]
 public ActionResult View2(NorthOrder q,int drop, string button)
 {
              if (button == "Add")
       {
string strDDLValue= db.Products.FirstOrDefault(_=>_.ProductID == drop).ProductName;

                       return View();
   }
}