亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 ASP.NET MVC 中填充下拉列表的正確方法

在 ASP.NET MVC 中填充下拉列表的正確方法

C#
千萬里不及你 2022-01-09 16:03:16
這就是我從我的模型中實現下拉列表的方式。我只是想檢查這是否是正確的方法還是有更簡單的方法?看起來相當復雜。我的清單型號:public class ApplicationRolesDropdownListDetailViewModel{    public String RoleId { get; set; }    public String ApplicationRoleName { get; set; }}進入我的視圖的視圖模型public class ApplicationRolesDropdownListViewModel{    public SelectList Roles { get; set; }}獲取項目列表并將其放在視圖中的下拉列表中的控制器:    public ActionResult NewRole()    {        var applicationRoles = applicationRolesData.GetAllApplicationRoles();        ApplicationRolesDropdownListViewModel ardlvm = new ApplicationRolesDropdownListViewModel();        ardlvm.Roles = new SelectList(applicationRoles, "RoleId", "ApplicationRoleName");        return View("~/Views/Users/Modals/AddRole.cshtml", ardlvm);    }我的觀點:    <div class="form-group">        @Html.DropDownListFor(m => m.Roles,Model.Roles, new { @id = "role", @class = "dropdown" })    </div>此外,當我通過 javascript 從列表中選擇一個項目時,我似乎無法獲得 RoleId。編輯:添加了我的 GetApplicationRoles    public List<ApplicationRolesDropdownListViewModel > GetAllApplicationRoles()    {        List<ApplicationRolesDropdownListViewModel > data = new List<ApplicationRolesDropdownListViewModel >();        try        {            var applicationRoles = dbContext.AspNetRolesExtendedDetails.ToList();            data = (from ar in applicationRoles                    join a in dbContext.AspNetApplications                     on ar.ApplicationId equals a.Id                    select new ApplicationRolesDropdownListViewModel                     {                        RoleId = ar.Id,                        ApplicationRoleName = ar.Name + " ( " + a.Name + " )"                    }).ToList();        }        catch (Exception e)        {            logger.Error(e, AspNetEventLogs.NotFound);        }        return data;    }
查看完整描述

1 回答

?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

像這樣試試


視圖模型:


public class ApplicationRolesViewModel

{

    // Display Attribute will appear in the Html.LabelFor

    [Display(Name = "User Role")]

    public string RoleId { get; set; }

    public IEnumerable<SelectListItem> Roles { get; set; }

}

控制器:


public ActionResult NewRole()

    {

        var roleData = new IEnumerable<SelectListItem>();

        applicationRolesData.GetAllApplicationRoles().Foreach(x =>

                   roleData.Add( new SelectListItem

                        {

                            Value = x.RoleId.ToString(),

                            Text = x.ApplicationRoleName

                        });

       );

        ApplicationRolesViewModel ardlvm = new ApplicationRolesViewModel();

        ardlvm.Roles = new SelectList(roleData , "Value", "Text")

        return View("~/Views/Users/Modals/AddRole.cshtml", ardlvm);

    }

查看:


@model ApplicationRolesViewModel


@Html.LabelFor(m => m.RoleId)

@Html.DropDownListFor(m => m.RoleId, Model.Roles)

并獲取當前選擇的下拉列表值Jquery:


$('#RoleId').val();

要獲取當前選定的文本:


$('#RoleId:selected').text();


查看完整回答
反對 回復 2022-01-09
  • 1 回答
  • 0 關注
  • 283 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號