C# 将下拉列表所选项目传递回控制器
我正在尝试将下拉列表中的选定项传递回控制器以触发存储过程 填充列表的控制器:C# 将下拉列表所选项目传递回控制器,c#,asp.net-mvc,C#,Asp.net Mvc,我正在尝试将下拉列表中的选定项传递回控制器以触发存储过程 填充列表的控制器: public ActionResult Activate() { var query = db.Certificates .Where(a => a.Active == "Y") .Select(cer => cer.CertificateNumber.Substring(0, 4)) .Di
public ActionResult Activate()
{
var query = db.Certificates
.Where(a => a.Active == "Y")
.Select(cer => cer.CertificateNumber.Substring(0, 4))
.Distinct()
.OrderBy(cer => cer);
ViewBag.BoxNumber = new SelectList(query.ToList());
return View();
}
查看我要从中获取的值
@{
ViewBag.Title = "Activate";
}
<h2>@ViewBag.Title.</h2>
<h3>@ViewBag.Message</h3>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.DropDownList("BoxNumber", String.Empty)
<input type="submit" value="Activate" class="btn btn-default" />
}
所选项目不会被返回。检查这个问题,我在那里详细回答了:也检查一下这个问题:它起作用了,只是从表单中获取了值。谢谢你可以投票支持我的答案,这对你来说是一种感谢
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Activate(string BoxNumber)
{
var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["GrandCelebration"].ConnectionString);
var command = new SqlCommand("ActivateCertificates", connection);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddWithValue("@BoxNumber", BoxNumber);
connection.Open();
command.ExecuteNonQuery();
connection.Close();
return RedirectToAction("Activate");
}