【问题标题】:ASP.NET MVC dropdown-detail view include a "ALL"ASP.NET MVC 下拉详细视图包括“全部”
【发布时间】:2018-08-03 12:51:18
【问题描述】:

我是 ASP.net MVC 的新手。

我正在修改的网站有一个名为“网站”的下拉列表,用户可以更改网站,然后相应地显示该网站的销售行。

Now my client wants the "site" drop-down list to include "All Sites", so when "All Sites" is selected, all sales across all sites would be shown.

有人可以指导我应该做什么吗? 我是否应该更改表映射以让每次销售始终指向一个名为“所有站点”的实际站点和虚拟站点?

谢谢 乙

【问题讨论】:

  • 您可以在绑定下拉列表的列表集合中的索引 0 处附加一个新项目。接下来,在您的数据层中添加一个条件以忽略 site-id 为 0 的 where 子句。

标签: asp.net model-view-controller entity


【解决方案1】:

您可以使用可选参数创建一个函数,这将帮助我们决定是必须显示所有网站的销售额还是仅显示选定网站的销售额。

函数看起来像这样:

public IEnumerable<Sale> GetSales(int? id)
    {
        if (id != null)
        {
            var salesBySite = getSalesBySite((int)id);
            return salesBySite;
        }
        else
        {
            var salesOfAllSites = getAllSales();
            return salesOfAllSites ;
        }

    }

在下拉列表中,所有选项都应具有值作为相应站点的 ID,但选项“AllSites”不应具有值或空值。

当用户从下拉列表中选择任何站点时,id 将被传递给函数 GetSales。如果用户从下拉列表中选择 AllSites,则不会将任何 id 传递给函数,函数将返回所有站点的销售额。

【讨论】:

    【解决方案2】:

    在我看来,没有正确的方法可以做到这一点。但这对我来说似乎是一份“报告”。用户实际上是在选择一个过滤器。

    你不应该改变表格,你可以在C#上总结或创建一个视图

    【讨论】:

      猜你喜欢
      • 2022-10-17
      • 2012-10-04
      • 1970-01-01
      • 2013-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-16
      相关资源
      最近更新 更多