如何从 DropDownList 中查找值
Posted
技术标签:
【中文标题】如何从 DropDownList 中查找值【英文标题】:how to Find value from DropDownList 【发布时间】:2019-05-22 04:27:47 【问题描述】:我尝试从下拉列表中获取一个值,但我有这个错误“”值不能为空。\r\n参数名称:源“我需要发布这个值,因为它是我的表“页面”的 id 这是控制器的代码:
public ActionResult Index()
List<SelectListItem> SelectListItem = new List<System.Web.Mvc.SelectListItem>();
foreach (Pages item in DbContext.Pages)
SelectListItem SelectList = new SelectListItem()
Text = item.PageName,
Value = item.IdPage.ToString()
;
SelectListItem.Add(SelectList);
Pages pagesmodel = new Pages();
pagesmodel.PagesA = SelectListItem;
return View(pagesmodel);
// this is the problem
var selected = page.PagesA.Select(item =>
item.Value.Equals(page.SelectedPages));
return RedirectToAction("Details","manage",new id=selected);
这是我的模型的代码:
public class PagesModel
public IEnumerable<SelectListItem> PagesA get; set;
public IEnumerable<string> SelectedPages get; set;
谢谢;
【问题讨论】:
在PagesModel
中,IEnumerable<string> SelectedPages
是IEnumerable
。然而,您遇到问题的代码行有一个 Equals
运算符。这是预期的吗?您不能对 IEnumerable (SelectedPages
) 和字符串 (SelectListItem.Value
) 执行 Equals
操作
我需要得到一个下拉列表的值。当我调试解决方案时,我在选定页面中得到结果,但 page.selectedpage 它为空
【参考方案1】:
// this is the problem
var selected = page.PagesA.Select(item => item.Value.Equals(page.SelectedPages)
这将返回不需要输出的布尔值列表(您需要 id)。
我认为您需要以这种方式更改您的课程:
public class PagesModel
public IEnumerable<SelectListItem> PagesA get; set;
public string SelectedPage get; set;
和
var selected = page.PagesA.Where(item => item.Equals(page.SelectedPage);
【讨论】:
谢谢,但我有一些错误 "Value cannot be null.\r\nParameter name: source"【参考方案2】:我们需要将字符串返回给变量而不是 IEnumerable .. 所以我们需要将类更改为:
public class PagesModel
public IEnumerable<SelectListItem> PagesA get; set;
public string SelectedPage get; set;
在控制器中:
var selected =page.SelectedPage;
return RedirectToAction("Details","manage",new id=selected);
谢谢大家,
【讨论】:
以上是关于如何从 DropDownList 中查找值的主要内容,如果未能解决你的问题,请参考以下文章
如何通过jquery 控制dropdownlist控件显示的选中值
从 CloudFormation 模板中的 DropDownList 中选择多个值