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

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

在更改時使用 DropDownList 傳遞多個數據字段

在更改時使用 DropDownList 傳遞多個數據字段

C#
元芳怎么了 2022-12-31 13:12:28
我目前正在嘗試創建修改用戶角色頁面。以下是我到目前為止所取得的成就......(用戶名字段確實會填充,我現在只是將其清空。)下面是我的視圖下拉[email protected]("Roles", new SelectList(ViewBag.RoleList), "Modify Role", new { @class = "form-control" })這是我需要它調用的控制器操作    [AuthLog(Roles = "Super Admin")]    [HttpPost]    public ActionResult ModifyUser(string id)    {        string newRole = Request.Form["Roles"];        if (id != null && newRole != null)        {             ApplicationDbContext context = new ApplicationDbContext();            var newRoleName = context.Roles.FirstOrDefault(u => u.Name == newRole);            var newid = newRoleName.Id;            context.UpdateRole(id, newid);        }        return RedirectToAction("Index", "UserControl");    }下面是我發送到我的方法的數據,以及我如何創建我的下拉列表。    {        [AuthLog(Roles = "Super Admin")]        public ActionResult Index()        {            ApplicationDbContext context = new ApplicationDbContext();            var usersWithRoles = (from user in context.Users                                  select new                                  {                                      UserId = user.Id,                                      Username = user.UserName,                                      user.Email,                                      RoleNames = (from userRole in user.Roles                                                   join role in context.Roles on userRole.RoleId                                                       equals role.Id                                                   select role.Name).ToList()                                  })問題是我需要一種方法,不僅可以發送在下拉列表中選擇的數據,還可以發送用戶 ID。UserId 在我的方法中指定,并通過 user.UserId 引入表循環 public string UserId { get; set; }理想情況下,這將通過在下拉列表中選擇角色的簡單更改來完成。簡而言之——只要在下拉列表中選擇了一個角色,我就需要一種方法讓我的下拉列表將 UserId 和所選角色發送到我的控制器操作/方法。任何幫助將不勝感激。
查看完整描述

2 回答

?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

這是您可以使用的另一個選項,它可以為每一行設置表單。


在您看來,將現有表單替換為每行中的一個表單,這樣您也可以在表單提交中傳入您的用戶 ID。此外,下拉列表添加了“onchange”,以便在更改時自動提交單個父表單。


<div class="panel panel-primary">

    <div class="panel-heading">

        <h3 class="box-title">

            <b>Users with Roles</b>

        </h3>

    </div>

    <div class="panel-body">

        <table class="table table-hover table-bordered table-condensed" id="UsersWithRoles">

            <thead>

                <tr>

                    <td><b>Username</b></td>

                    <td><b>Roles</b></td>

                </tr>

            </thead>

            @foreach (var user in Model)

            {

                <tr>

                    <td>@user.Username</td>

                    <td>@user.Role</td>

                    <td>

                        @using (Html.BeginForm("ModifyUser", "UserControl", FormMethod.Post, new { id = "ManageUser" }))

                        {

                            @Html.HiddenFor(modelItem => user.UserId)

                            @Html.DropDownList("Roles", new SelectList(ViewBag.RoleList), "Modify Role",

                                new { @class = "form-control", onchange = "this.parentElement.submit()" })

                        }

                    </td>

                </tr>

            }

        </table>

    </div>

</div>

現在您可以從接收操作中獲取角色和用戶 ID:


[AuthLog(Roles = "Super Admin")]

[HttpPost]

public ActionResult ModifyUser(string id)

{

    string newRole = Request.Form["Roles"];

    string userId = Request.Form["user.UserId"];

    // ...

}


查看完整回答
反對 回復 2022-12-31
?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

我就是這樣做的。

  1. 將下拉列表(和其他字段)包裝在 html 表單中并為其指定一個 ID

  2. 添加一個隱藏的輸入,其中包含要傳遞給服務器的用戶 ID 的值

  3. 在下拉列表中添加調用 javascript 方法 OnChangeFunc 的 onchange 事件

@Html.DropDownList("Roles", new SelectList(ViewBag.RoleList), "Modify Role", new { @class = "form-control", @onchange="OnChangeFunc()" })

  1. Javascript部分

<script>

    function OnChangeFunc(){

        //Get form by ID and submit it

    }

</script>


查看完整回答
反對 回復 2022-12-31
  • 2 回答
  • 0 關注
  • 128 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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