簡體   English   中英

CRUD篩選/排序在asp.net中不起作用

[英]CRUD filtering/sorting doesnt work in asp.net

我有需要排序/過濾的數據庫。 我當前的代碼未顯示任何錯誤,但也沒有執行任何操作。

ApplicationUsersController.cs

// GET: ApplicationUsers
        public ActionResult Index(string sortOrder, string searchString)
        {
            ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
            ViewBag.EmailSortParm = sortOrder == "Email" ? "email_desc" : "Email";
            var users = from c in db.Users
                           select c;
            if (!String.IsNullOrEmpty(searchString))
            {
                users = users.Where(c => c.Name.ToUpper().Contains(searchString.ToUpper())
                                       || c.Email.ToUpper().Contains(searchString.ToUpper()));
            }
            switch (sortOrder)
            {
                case "name_desc":
                    users = users.OrderByDescending(c => c.Name);
                    break;
                case "Email":
                    users = users.OrderBy(c => c.Email);
                    break;
                case "email_desc":
                    users = users.OrderByDescending(c => c.Email);
                    break;
                default:
                    users = users.OrderBy(c => c.Name);
                    break;
            }




            return View(db.Users.ToList());
        }

Index.cshtml

@using (Html.BeginForm())
{
    <p>
        Find by name: @Html.TextBox("SearchString")
        <input type="submit" value="Search" />
    </p>
}



<table class="table">
    <tr>
        <th>
            @Html.ActionLink("Email", "Index", new { sortOrder = ViewBag.EmailSortParm })
        </th>
        <th>
            @Html.ActionLink("Name", "Index", new { sortOrder = ViewBag.NameSortParm })
        </th>

排序或過濾似乎均無效。 排序時,地址欄變為

/ ApplicationUsers?sortOrder = name_desc

但順序完全不變。 也許有人可以看到問題出在哪里?

編輯:

可以是' var users = from c in db.Users select c; '字母'c'是錯的嗎? 我怎么知道呢?

更改:

return View(db.Users.ToList());

至:

return View(users);

:-)

您需要將兩個參數傳遞給操作Index

@Html.ActionLink("Email", "Index", new { sortOrder = ViewBag.EmailSortParm, searchString = null })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM