我有一个包含两个外部页面(@ {Html.RenderAction)的View页面。 所有3页都有一个控制器。默认情况下,我从MSSQL数据库中获取所有数据,并得到结果。现在我需要按日期筛选结果,并在一些日期之间取得结果。如何在两个日期之间进行搜索
下面是搜索表单的HTML代码:
@using (Html.BeginForm("Reporti", "Reporti", null, FormMethod.Get))
{
<table border="0" cellspacing="5" cellpadding="5">
<tbody>
<tr>
<td>Od Datum:</td>
<td><input type="text" id="datumOD" name="datumOD" class="datumOD"></td>
</tr>
<tr>
<td>Do Datum:</td>
<td><input type="text" id="max" name="datumDO" class="datumDO"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Baraj" /></td>
</tr>
</tbody>
</table>
}
页面的网址是:H **号码://本地主机:41777/Reporti/Reporti
后点击搜索按钮我有这个URL
ħ**号码://本地主机:41777/Reporti/Reporti datumOD = 2017年3月1日& datumDO = 2017年3月2日
这里是控制器的代码
public ActionResult Reporti(string filter, DateTime? datumOD, DateTime? datumDO)
{
Session["invoiceFrom"] = datumOD;
Session["invoiceTo"] = datumDO;
return View();
}
public ActionResult reportIZ(DateTime? datumOD, DateTime? datumDO)
{
var smetkis = db.smetkis.Include(s => s.firmi);
return View(smetkis.ToList());
}
public ActionResult Report(DateTime? datumOD, DateTime? datumDO)
{
var ponudis = db.ponudis.Include(s => s.ponudaDets).Where(x => x.odobreno);
return View(ponudis.ToList());
}
我的问题是,如何实现代码公众的ActionResult Reporti过滤日期之间的结果。如果您需要从一次你应该使用Union
2个表中获取数据
public ActionResult Reporti(DateTime? datumOD, DateTime? datumDO)
{
var ponudis = db.ponudis.Include(s => s.ponudaDets).AsQueryable();
if(datumOD.HasValue) //If we have date - add condition
ponudis = ponudis.Where(x => x.odobreno >= datumOD);
if(datumDO.HasValue) //If we have date - add condition
ponudis = ponudis.Where(x => x.odobreno <= datumDO);
return View(ponudis.ToList());
}
:
胡乱猜测的基础上,稀疏的信息你给:'VAR filteredResult = db.Whatever.Where(X => X。 datumOD> = datumOD && x.datumDO <= datumDO).ToList()' –
是否可以从两个表中过滤,例如。 ponudis和smetkis在一起? – Xelmep