我正在尝试在我的MVC Web应用程序中实现搜索。虽然我的搜索结果是根据文本输入正确过滤的,但我的结果不会根据日期条件/单选按钮选择进行过滤。我的代码如下。
控制器:
public ActionResult Index(string SearchString, int? daysBack)
{
var query = from t in db.Transactions
select t;
// List of Transactions
List<Transaction> SelectedTransactions = new List<Transaction>();
ViewBag.NumberAllTransactions = db.Transactions.Count();
if (SearchString == "" || SearchString == null)
{
// Display / add to view bag
ViewBag.NumberSelectedTransactions = db.Transactions.ToList().Count;
// Display list
return View(db.Transactions.ToList());
}
else
{
// Select Transactions searched for
SelectedTransactions = db.Transactions.Where(t => t.TransactionDescription.Contains(SearchString)).ToList();
// Display / add to view bag
ViewBag.NumberSelectedTransactions = SelectedTransactions.ToList().Count;
// Sort list
SelectedTransactions.OrderBy(t => t.TransactionDate).ThenBy(t => t.TransactionType).ThenBy(t => t.TransactionDescription);
// Display list
}
// Transaction Date
if (daysBack == 0)
{
// Display / add to view bag
ViewBag.NumberSelectedTransactions = db.Transactions.ToList().Count;
// Display list
return View(db.Transactions.ToList());
}
else
{
var oldestDate = (DateTime.Today).AddDays(Convert.ToDouble(daysBack) * -1);
query = from t in db.Transactions
where t.TransactionDate >= oldestDate
select t;
}
List<Transaction> NewSelectedTransactions = query.ToList();
ViewBag.NumberAllTransactions = db.Transactions.ToList().Count();
ViewBag.NumberSelectedTransactions = SelectedTransactions.Count;
return View(NewSelectedTransactions);
查看:
<p class="form-group">
Search: @Html.TextBox("SearchString", null, new { @class = "form-control" }) <br />
<div class="form-group">
<div class="form-check">
<p>Date</p>
<label class="form-check-label">
@Html.RadioButton("daysBack", 15, new { @class = "form-check-input" }) Last 15 Days <br />
</label>
<br />
<label class="form-check-label">
@Html.RadioButton("daysBack", 30, new { @class = "form-check-input" }) Last 30 Days
</label>
<br />
<label class="form-check-label">
@Html.RadioButton("daysBack", 60, new { @class = "form-check-input" }) Last 60 Days
</label>
</div>
</div>
为什么当我选择一个单选按钮进行搜索时,它不会导致我的搜索结果缩小到相关范围内的日期?
答案 0 :(得分:0)
我的查询出了问题......我缺少LINQ Where子句,这阻止了日期限制器的生效。