gpt4 book ai didi

html - 在 asp.core razor 页面中设置所选项目

转载 作者:行者123 更新时间:2023-12-03 09:00:13 25 4
gpt4 key购买 nike

我正在使用 ASP Core Razor 页面。这是我的 Edit.cshtml.cs:

    [BindProperty]
public List<Microsoft.AspNetCore.Mvc.Rendering.SelectListItem> CCusers { get; set; }

and here I fill CCusers with data:
CCusers =new List<Microsoft.AspNetCore.Mvc.Rendering.SelectListItem>() {
new Microsoft.AspNetCore.Mvc.Rendering.SelectListItem() { Value = "1", Text = "HR", Selected = true },
new Microsoft.AspNetCore.Mvc.Rendering.SelectListItem() { Value = "2", Text = "IT", Selected = false },
new Microsoft.AspNetCore.Mvc.Rendering.SelectListItem() { Value = "3", Text = "Account", Selected = false },

};

在 Razor Page 中,我使用了两种不同的选择:

    <select asp-for="CCusers" asp-items="@Model.CCusers" id="CCusers" multiple="multiple" class="selectpicker"> </select>

//and this:

@Html.DropDownList("NewSelect", Model.CCusers, new { @class = "selectpicker", @multiple = "multiple" })

这是他们俩的结果:

<select id="CCusers" multiple="multiple" class="selectpicker" name="CCusers"> 
<option value="1">HR</option>
<option value="2">IT</option>
<option value="3">Account</option>
</select>

<select class="selectpicker" id="NewSelect" multiple="multiple" name="NewSelect">
<option selected="selected" value="1">HR</option>
<option value="2">IT</option>
<option value="3">Account</option>
</select>

Core Select 没有设置所选项目,而 @Httml.DropDownList 则设置了。我在第一个选择中缺少什么?

最佳答案

对于Select Tag Helper ,您需要设置asp-for它指定 select 的模型属性名称元素。

对于您的问题,您需要为 selected CCusers 定义新属性而不是绑定(bind) CCusersasp-for直接。

您可以引用以下代码:

页面

public class EditModel : PageModel
{
[BindProperty]
public int[] SelectedCCuserIds { get; set; }
[BindProperty]
public List<SelectListItem> CCusers { get; set; }
public void OnGet()
{
SelectedCCuserIds = new int[] { 1, 2 };
CCusers = new List<SelectListItem>()
{
new SelectListItem() { Value = "1", Text = "HR" },
new SelectListItem() { Value = "2", Text = "IT" },
new SelectListItem() { Value = "3", Text = "Account" },
};
}
public IActionResult OnPost()
{
var result = SelectedCCuserIds;
return RedirectToAction("OnGet");
}
}

查看

@page
@model CoreRazor.Pages.EditModel
@{
ViewData["Title"] = "Edit";
}
<h2>Edit</h2>
<form method="post">
<select asp-for="@Model.SelectedCCuserIds" asp-items="@Model.CCusers"
multiple="multiple" class="selectpicker"> </select>
@*@Html.DropDownList("NewSelect", Model.CCusers, new { @class = "selectpicker",
@multiple = "multiple" })*@
<div class="form-group">
<input type="submit" value="Save" class="btn btn-default" />
</div>
</form>

关于html - 在 asp.core razor 页面中设置所选项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51229988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com