C# 基于过滤器获取产品列表

C# 基于过滤器获取产品列表,c#,asp.net,asp.net-mvc-5,C#,Asp.net,Asp.net Mvc 5,我试图根据起始价格和结束价格过滤价格。我在Controller中创建了以下列表: public ActionResult Index() { List<CarModel> objCar = new List<CarModel>() { new CarModel {ProductBrand="BMW",ProductName="X4", ProductColor="White", Price=57000 }, new CarM

我试图根据起始价格和结束价格过滤价格。我在
Controller
中创建了以下列表:

public ActionResult Index()
{
    List<CarModel> objCar = new List<CarModel>()
    {
        new CarModel {ProductBrand="BMW",ProductName="X4", ProductColor="White", Price=57000 },
        new CarModel {ProductBrand="Mercedes",ProductName="AMG", ProductColor="Black", Price=61000 },
        new CarModel {ProductBrand="BMW",ProductName="X6", ProductColor="Black", Price=32000 },
        new CarModel {ProductBrand="BMW",ProductName="X5", ProductColor="White", Price=28000 },
        new CarModel {ProductBrand="BMW",ProductName="X3", ProductColor="White", Price=30000 }
    };

    CarModelDetail ObjCarDetails = new CarModelDetail();
    ObjCarDetails.OrderDetails = objCar;
    return View(ObjCarDetails);
}
public ActionResult Index()
{
List objCar=新列表()
{
新CarModel{ProductBrand=“BMW”,ProductName=“X4”,ProductColor=“白色”,价格=57000},
新CarModel{ProductBrand=“Mercedes”,ProductName=“AMG”,ProductColor=“Black”,价格=61000},
新的CarModel{ProductBrand=“BMW”,ProductName=“X6”,ProductColor=“黑色”,价格=32000},
新的CarModel{ProductBrand=“BMW”,ProductName=“X5”,ProductColor=“白色”,价格=28000},
新CarModel{ProductBrand=“BMW”,ProductName=“X3”,ProductColor=“白色”,价格=30000}
};
CarModelDetail ObjCarDetails=新的CarModelDetail();
ObjCarDetails.OrderDetails=objCar;
返回视图(ObjCarDetails);
}
在浏览器中,将根据这些列表指示表格。还有输入,其中一个是起始价,第二个是结束价。如果用户输入开始和结束价格,然后单击
Filter
按钮,则应该对其进行过滤。有什么想法吗?谢谢你的帮助

看照片


这是我脑子里想不出来的

视图:


@Label(“按汽车过滤”,htmlAttributes:new{@class=“control Label col-md-2”})
@Html.DropDownList(“carFilter”,新选择列表(@ViewBag.Cars),
“所有汽车”,新{@class=“form control”})
然后,在控制器中:

ViewBag.Cars = ListofCars();
private IEnumerable<string> ListofCars()
{
    CarRepo = new CarRepo();

    IEnumerable<CarModel> CCars;
    using (car)
    {
        CCars = cars.SelectAll() as IList<CarModel>;
    }

    var Cars = Cars.Select(b => b.Car).Distinct().OrderBy(x => x);
    return cities;
}
ViewBag.Cars=ListofCars();
私有IEnumerable ListofCars()
{
CarRepo=新CarRepo();
IEnumerable CCAR;
使用(汽车)
{
CCars=cars.SelectAll()作为IList;
}
var Cars=Cars.Select(b=>b.Car.Distinct().OrderBy(x=>x);
回归城市;
}
这会将汽车列表的视图数据拉入控制器,将它们转换为
IList
,以便控制器可以使用lambda表达式对它们进行排序。只是一个想法。

使用linq

var result  = objCar.Where(a => a.Price >= MinValue && a.Price  <= MaxValue).ToList();

var result=objCar.Where(a=>a.Price>=MinValue&&a.Price我这样做是为了你;)

鉴于:

<table class="table table-condensed" id="countryTable">
<thead>
    <tr class="table-success">
        <th>ProductBrand</th>
        <th>ProductName</th>
        <th>ProductColor</th>
        <th>Price</th>

    </tr>
</thead>

产品品牌
产品名称
产品颜色
价格
js:

var-oaTable=$('#countryTable').DataTable({
“处理”:true,//用于显示进度条
“orderMulti”:false,//用于一次禁用多个列
“搜索”:错误,
//“dom”:“Ftr”,
“ajax”:{
“url”:“/Yourcontrollername/LoadData”,
“类型”:“职位”,
“数据类型”:“json”
},
“栏目”:[{
“数据”:“产品品牌”,
“名称”:“产品品牌”,
“宽度”:“150px”,
},
“栏目”:[{
“数据”:“产品名称”,
“名称”:“产品名称”,
“宽度”:“150px”,
},
“栏目”:[{
“数据”:“ProductColor”,
“名称”:“ProductColor”,
“宽度”:“150px”,
},
“栏目”:[{
“数据”:“价格”,
“名称”:“价格”,
“宽度”:“150px”,
},
]

})

您有什么问题?要查找价格范围内的元素?您没有提供任何代码来显示您试图实现这一目标的内容。Juist search abit可搜索“基于条件c的筛选列表”.OP不想从下拉菜单中进行选择,但只想选择列表中价格在给定范围内的元素。您的代码没有提供任何相关信息。除此之外,
var Cars=Cars…
甚至不需要下拉列表。但我编写了一些代码。他们也不提供filterWell,我想是过滤器有人问这个问题。在视图中我如何表达这个问题?mrsWhite非常感谢:)谢谢你的帮助,但我知道这个方法。不幸的是,我需要在服务器端的asp.net mvc中这样做?这是asp.net mvc中的工作:)如果你想的话,我可以发送给你,不需要在C#mvc控制器中编写代码并发送到视图。在视图中,它在单击“过滤器”时呈现但是我不能用C来做这个#
$.fn.dataTable.ext.search.push(
function( settings, data, dataIndex ) {
    var min = parseInt( $('#min').val(), 10 );
    var max = parseInt( $('#max').val(), 10 );
    var columntosearch = parseFloat( data[2] ) || 0; // use data for the age column

    if ( ( isNaN( min ) && isNaN( max ) ) ||
         ( isNaN( min ) && columntosearch <= max ) ||
         ( min <= columntosearch   && isNaN( max ) ) ||
         ( min <= columntosearch   && columntosearch <= max ) )
    {
        return true;
    }
    return false;
});


var table = $('#example').DataTable();

// Event listener to the two range filtering inputs to redraw on input
$('#min, #max').keyup( function() {
    table.draw();
} );
public ActionResult Index(){
return View();}public ActionResult LoadData()
    {
         List<CarModel> objCar = new List<CarModel>()
{
    new CarModel {ProductBrand="BMW",ProductName="X4", ProductColor="White", Price=57000 },
    new CarModel {ProductBrand="Mercedes",ProductName="AMG", ProductColor="Black", Price=61000 },
    new CarModel {ProductBrand="BMW",ProductName="X6", ProductColor="Black", Price=32000 },
    new CarModel {ProductBrand="BMW",ProductName="X5", ProductColor="White", Price=28000 },
    new CarModel {ProductBrand="BMW",ProductName="X3", ProductColor="White", Price=30000 }
};
CarModelDetail ObjCarDetails = new CarModelDetail();
ObjCarDetails.OrderDetails = objCar;
        return Json(new { data = objCar }, JsonRequestBehavior.AllowGet);
    }
<table class="table table-condensed" id="countryTable">
<thead>
    <tr class="table-success">
        <th>ProductBrand</th>
        <th>ProductName</th>
        <th>ProductColor</th>
        <th>Price</th>

    </tr>
</thead>
var oaTable = $('#countryTable').DataTable({
 "processing": true, // for show progress bar
 "orderMulti": false, // for disable multiple column at once
 "searching": false,
 // "dom": "<<'pull-left'>'row'>Ftr<'row-fluid'<'col-md-12'lp>>",
 "ajax": {
     "url": "/Yourcontrollername/LoadData",
     "type": "POST",
     "datatype": "json"
 },
 "columns": [{
         "data": "ProductBrand",
         "name": "ProductBrand",
          "width": "150px",
     },
     "columns": [{
         "data": "ProductName",
         "name": "ProductName",
          "width": "150px",
     },
      "columns": [{
         "data": "ProductColor",
         "name": "ProductColor",
          "width": "150px",
     },
      "columns": [{
         "data": "Price",
         "name": "Price",
          "width": "150px",
     },

 ]