.net core viewbag 傳遞list 或 model


前端需要錄入用戶賬號,但客戶要求最好是選擇式的,並且只是顯示用戶名就好。

但前端已經做好,采用雙model的viewmodel來做太麻煩,就采用了下述方法。

 

后端代碼:

 List<SelectListItem> li = new List<SelectListItem>();
            var us = _context.assetUsers;
            foreach (var item in us)
            {
                SelectListItem listItem = new SelectListItem();
                listItem.Text = item.Name;
                listItem.Value = item.OwnerID.ToString();
                li.Add(listItem);
            }
            ViewBag.AllUser = li;

前端引入:

 <select asp-for="AsOwner" class="form-control">
                    <option hidden></option>
                    @foreach (var item in (List<SelectListItem>)ViewBag.AllUser)
                    {
                        <option value=@item.Value> @item.Text</option>@*value存儲的是賬號,text為用戶名*@
                    }
                </select>

 

 

 

利用ViewBag引入Model

           var al = _context.asUsers.ToList();
            ViewBag.User = al;

 

前端引入ViewBag.User並將其轉為list<model>

@{
    ViewData["Title"] = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
    var Uname = ViewBag.User as List<as.Models.AssetUser>;
}

 

前端顯示



<
td> @*@Html.DisplayFor(modelItem => item.AssetOwner)*@ @*@item.AssetOwner*@ @if (Uname.Where(n => n.OwnerID.Equals(item.AssetOwner)) == null) { @item.AssetOwner } else { @Uname.Where(n => n.OwnerID.Equals(item.AssetOwner)).FirstOrDefault().Name } </td>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM