iT邦幫忙

2

會員系統,LINQ技術

下列程式碼要如何更改才能配合它已經用OrderByDescending排序成功讓View上顯示了,可是要在View上面只顯示一筆資料而不是全部資料,如圖↓

意思是:第1張的圖片是現在呈現出來的,可是我真正想要的顯示是第2張圖(修改過的圖)

https://ithelp.ithome.com.tw/upload/images/20210815/2014049161cioTesc5.png

https://ithelp.ithome.com.tw/upload/images/20210815/20140491Xm19I3lBAH.png

Controller的程式碼

public ActionResult Index()
        {
            string uid = User.Identity.Name;
            string Permission = db.會員.Where(m => m.帳號 == uid).FirstOrDefault().權限;
            ViewBag.Permission = Permission;

            List<產品類別> category = new List<產品類別>();
            foreach (var item in db.產品類別.OrderByDescending(m => m.修改日))
            {
                category.Add(new 產品類別()
                {
                    類別編號 = item.類別編號,
                    類別名稱 = item.類別名稱,
                    編輯者 = item.編輯者,
                    修改日 = Sys.StringConverDateTimeString(item.修改日),
                    建立日 = Sys.StringConverDateTimeString(item.建立日)
                });
            }

            return View(category);

Vies的程式碼

 @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.類別編號)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.類別名稱)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.編輯者)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.建立日)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.修改日)
            </td>
            <td>
                @if (Permission.Contains("U"))
                {
                    @Html.ActionLink("編輯", "Edit", new { cid = item.類別編號 }, new { @class = "btn btn-success" })
                }
                @if (Permission.Contains("D"))
                {
                    @Html.ActionLink("刪除", "Delete", new { cid = item.類別編號 }, new { @class = "btn btn-danger", onclick = "return confirm('是否刪除?');" })
                }
            </td>
        </tr>
    }

1 個回答

1
w4560000
iT邦新手 3 級 ‧ 2021-08-15 23:32:35
最佳解答

改成只取一筆資料

public ActionResult Index()
        {
            string uid = User.Identity.Name;
            string Permission = db.會員.Where(m => m.帳號 == uid).FirstOrDefault().權限;
            ViewBag.Permission = Permission;

            List<產品類別> category = db.產品類別.OrderByDescending(m => m.修改日)
                                       .Take(1)
                                       .Select(s => new 產品類別()
                                        {
                                            類別編號 = s.類別編號,
                                            類別名稱 = s.類別名稱,
                                            編輯者 = s.編輯者,
                                            修改日 = Sys.StringConverDateTimeString(s.修改日),
                                            建立日 = Sys.StringConverDateTimeString(s.建立日)
                                        }).ToList();
                                       
            return View(category);
        }

成功了,謝謝解答

public ActionResult Index()
        {
            string uid = User.Identity.Name;
            string Permission = db.會員.Where(m => m.帳號 == uid).FirstOrDefault().權限;
            ViewBag.Permission = Permission;

            List<產品類別> category = new List<產品類別>();
            foreach (var item in db.產品類別.OrderByDescending(m => m.修改日).Take(1))
            {
                category.Add(new 產品類別()
                {
                    類別編號 = item.類別編號,
                    類別名稱 = item.類別名稱,
                    編輯者 = item.編輯者,
                    修改日 = Sys.StringConverDateTimeString(item.修改日),
                    建立日 = Sys.StringConverDateTimeString(item.建立日)
                });
            }

            return View(category);

選擇在View只列出一筆也是一種選擇,如果你有這種需求的話XD

OK/images/emoticon/emoticon12.gif

我要發表回答

立即登入回答