gpt4 book ai didi

asp.net-mvc - 在 ASP.NET MVC 中的 Html.ListBox 中需要帮助

转载 作者:行者123 更新时间:2023-12-01 09:37:17 25 4
gpt4 key购买 nike

我目前正在开发一个应用程序,在该应用程序中,我在 View 的列表框中显示项目列表,然后将选定的项目发送回 Controller 。

我的模型如下:

public class Items    {        [DisplayName("Items")]        public string[] Items { get; set; }    }

当用户第一次请求页面时,必须从数据库中查询项目列表并将其发送到 View 。我能够弄清楚如何在 Controller 端将项目收集到 ArrayList/string[] 中,但无法理解将 View 与模型绑定(bind)并使用 Html.ListboxFor 显示列表并将模型发回的语法表单提交。

谁能帮帮我。

谢谢。

最佳答案

查看模型:

public class MyViewModel
{
[DisplayName("Items")]
public string[] SelectedItemIds { get; set; }
public IEnumerable<SelectListItem> Items { get; set; }
}

Controller :

public class HomeController : Controller
{
public ActionResult Index()
{
var model = new MyViewModel
{
// preselect some items
// leave empty if you want none to be selected initially
SelectedItemIds = new[] { "1", "3" },

// Normally you would fetch those from your database
// hardcoded here for the purpose of the post
Items = Enumerable.Range(1, 10).Select(x => new SelectListItem
{
Value = x.ToString(),
Text = " item " + x
})
};
return View(model);
}

[HttpPost]
public ActionResult Index(string[] selectedItemIds)
{
// here you will get the list of selected item ids
// where you could process them
// If you need to redisplay the same view make sure that
// you refetch the model items once again from the database
...

}
}

查看( Razor ):

@model AppName.Models.MyViewModel
@using (Html.BeginForm())
{
@Html.LabelFor(x => x.SelectedItemIds)

@Html.ListBoxFor(
x => x.SelectedItemIds,
new SelectList(Model.Items, "Value", "Text")
)
<input type="submit" value="OK" />
}

查看(WebForms):

<% using (Html.BeginForm()) { %>
<%= Html.LabelFor(x => x.SelectedItemIds) %>

<%= Html.ListBoxFor(
x => x.SelectedItemIds,
new SelectList(Model.Items, "Value", "Text")
) %>
<input type="submit" value="OK" />
<% } %>

关于asp.net-mvc - 在 ASP.NET MVC 中的 Html.ListBox 中需要帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5478936/

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