c# - 参数错误/搜索结果不完整

时间:2017-04-23 23:23:00

标签: c# asp.net-mvc linq razor

我正在尝试在我的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>

为什么当我选择一个单选按钮进行搜索时,它不会导致我的搜索结果缩小到相关范围内的日期?

1 个答案:

答案 0 :(得分:0)

我的查询出了问题......我缺少LINQ Where子句,这阻止了日期限制器的生效。