C# 如何携带在Asp.net MVC中选择的下拉列表值
嗨,我在索引页面中有下拉列表,用户需要在其中选择列表。值来自数据库。我把这个下拉值带到会话中,这样我就可以把它带到Httppost 以下是我在索引页中的代码:C# 如何携带在Asp.net MVC中选择的下拉列表值,c#,asp.net,asp.net-mvc,asp.net-mvc-3,razor,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Razor,嗨,我在索引页面中有下拉列表,用户需要在其中选择列表。值来自数据库。我把这个下拉值带到会话中,这样我就可以把它带到Httppost 以下是我在索引页中的代码: var activitydropdown = orderdata.uspApp_ActivityPageReportname(Convert.ToInt32(newid)).ToList(); List<SelectListItem> activitypage = new List<Sel
var activitydropdown = orderdata.uspApp_ActivityPageReportname(Convert.ToInt32(newid)).ToList();
List<SelectListItem> activitypage = new List<SelectListItem>();
if (activitydropdown != null && activitydropdown.Count > 0)
{
foreach (var activityresults in activitydropdown)
{
activitypage.Add(new SelectListItem
{
Text = activityresults.name,
Value = activityresults.id.ToString(),
});
}
}
ViewData["activitydropdown"] = activitypage;
Session["activitydropdown"] = activitypage;
我可以看到文本和值,对于每个项目,selected为false。所以,我如何将从索引中选择的文本传送到httpost,这样当用户从下拉列表中选择列表时,它将存储该文本值。它将在您的请求中可用,即
Request["DrpaActivity"]
然而,我强烈建议改用ViewModels,因为它们是类型安全的,更少的出错空间,更易于使用
如果创建视图模型,如下所示:
public class AViewModel
{
public string DrpaActivity { get; set; }
public List<SelectListItem> ActivitySelectList { get; set; }
}
然后在您的视图中,在顶部声明模型
@model AViewModel
按如下方式设置下拉列表:
public ActionResult Index()
{
var model = new AViewModel();
// set the select list i.e.
model.ActivitySelectList = // get from db etc
return View(model);
}
@Html.DropDownListFor(m => m.DrpaActivity, Model.ActivitySelectList as List<SelectListItem>, "All", new { style = "margin-left:694px;margin-bottom:20px;", onchange = "submit();" })
嗨,我有这个。现在我有了用户在下拉列表中选择的id。你能告诉我如何根据这个id保存文本吗?我知道了。谢谢你的时间。我确实喜欢如果id==id,那么selected=true。对我来说似乎很容易。不错,是的。您可以在get呼叫中设置所选Id,它将自动选择该Id。祝其余的好运。“submit()”函数在哪里?如何通知模型更改?另外,您是否在自己的文件中定义模型?
@model AViewModel
@Html.DropDownListFor(m => m.DrpaActivity, Model.ActivitySelectList as List<SelectListItem>, "All", new { style = "margin-left:694px;margin-bottom:20px;", onchange = "submit();" })
[HttpPost]
public ActionResult Index(AViewModel model)
{
var isValid = model.DrpaActivity;
return View(model);
}