簡體   English   中英

來自多個 DropDownList 的回發工作但在頁面中不刷新

[英]Postback from multiple DropDownList working but not refreshing in page

我有一個 razor 頁面,其中包含一個迭代用戶對象列表的 for 循環。

循環的每個重復都包含一個下拉列表:-

<button type="submit" asp-page-handler="SetUserStatuses">Update Statuses</button>

@for (int i = 0; i < Model.UserList.Count; i++)
{
    @Model.UserList[i].UserAccountStatusId
    @Html.DropDownList("UserAccountStatusId", new SelectList(Enum.GetValues(typeof(UserAccountStatus)).Cast<UserAccountStatus>().Select
(v => new SelectListItem
{
    Text = v.GetDescription(),
    Value = (Convert.ToInt32(v)).ToString()
}), "Value", "Text", Model.UserList[i].UserAccountStatusId))

@Html.Hidden("UserId", Model.UserList[i].UserId)

頁面處理程序只是:-

public void OnPostSetUserStatuses(int[] UserId, int[] UserAccountStatusId)
{
    for (var i = 0; i < UserId.Length; i++)
    {
      userService.SetUserStatus(UserId[i], UserAccountStatusId[i]);
    }
    var userList = userService.GetUsers();
    UserList = userList;
    return Page();
}

model 定義如下:-

public List<User> UserList { get; set; }
[BindProperty]
public int[] UserAccountStatusId { get; set; }
[BindProperty]
public int[] UserId { get; set; }

因此,當我發布提交時,頁面處理程序被觸發,數據庫被更新,新值返回到 UserList 中的 model。

此外,這行說: -

@Model.UserList[i].UserAccountStatusId

以正確的值顯示。

但是,下拉列表不會使用正確的選定值刷新。 我認為問題在於我有多個下拉菜單,並且似乎存在一些約束性問題,我一生都無法理解。

有人可以幫忙嗎。

嘗試使用 DropDownListFor

@Html.DropDownListFor(model=> model.UserAccountStatusId[i],
                       ...., @Model.UserAccountStatusId[i])
````

暫無
暫無

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

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