【问题标题】:Distinct values in dropdownlist and Filter on default value下拉列表中的不同值和默认值过滤器
【发布时间】:2013-03-17 18:50:03
【问题描述】:

我有这个 ViewData 和 DropDownList 需要有不同的值。让我在上下文中为您介绍一下,在我看来,当我创建一个“项目”时,它可以将其“样式值”设置为某些东西(它是一个字符串字段),例如“Pop”。在我的下拉过滤器内的索引页面上,我将在其中包含“Pop”。如果我创建第二个项目,其样式值为“Pop”,下拉菜单将显示两次。我不想那样。

我要做的第二件事是在我的下拉过滤器中设置一个默认值,这样当我选择该值时,它将删除所有过滤器并显示添加的所有项目的完整列表。

如果我没有说清楚就直说吧。

这是我的代码中的内容。

我的控制器:

public ActionResult Index()
    {
        var projects = from s in db.Project select s;
        var projectList = db.Project.ToList();

        if (Request.Form["FilterStyle"] != null && Request.Form["FilterStyle"] != "")
        {
            int i = int.Parse(Request.Form["FilterStyle"]);
            projects = from s in db.Project
                       where s.ID == i
                       select s;
        }

        if (Request.Form["FilterStyle"] == null)
        {
            projects = from s in db.Project select s;
        }

        ViewData["Styles"] = new SelectList(projectList, "ID", "Style");

        return View(projects);
    }

我的看法:

@using (Html.BeginForm())
{
<table>
    <thead>
        <tr align="left">

        ....

            <th>
                Style :
                <br /><br />
                @Html.DropDownList("FilterStyle", (SelectList)ViewData["Style"], " ", new { onchange = "this.form.submit()" })
            </th>

        ....

        </tr>    
    </thead>

    <tbody>

    ....

    </tbody>
</table>
}

【问题讨论】:

    标签: c# asp.net-mvc drop-down-menu filter


    【解决方案1】:

    在将查询传递给视图之前,您需要确保在查询中您只会获得 distict 值。

    projects = (from s in db.Project
                           where s.ID == i
                           select s).Distinct().ToList();
    
    
    
      var projectList = db.Project.Distinct().ToList();
    

    【讨论】:

    • 刚试过这个,它不起作用:/另外,你不能去projects = (...).Distinct().ToList();在这种情况下:(这里困扰我的是我们试图区分样式值,而不是所有项目。所以我认为 db.Project.Distinct().ToList() 没有意义。我错了吗?
    • 你可以使用更多的 linq code.google.com/p/morelinq 扩展名 diticntBy 以根据特定值区分
    猜你喜欢
    • 2017-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-07
    • 2013-10-23
    • 2015-11-05
    相关资源
    最近更新 更多