如何从 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&lt;string&gt; SelectedPagesIEnumerable。然而,您遇到问题的代码行有一个 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 中查找值的主要内容,如果未能解决你的问题,请参考以下文章

如何设置 DropDownList 的字体大小?

如何通过jquery 控制dropdownlist控件显示的选中值

【JS】如何更改dropdownlist 当前选定值

从 CloudFormation 模板中的 DropDownList 中选择多个值

如何使用.Net MVC 5从DropDownList中显示两个独立列中的数据

如何将多个 Html.DropDownList 选定值从 View(.aspx) 传递给 MVC 控制器的操作?