gpt4 book ai didi

asp.net-mvc-3 - 将通用列表绑定(bind)到 MVC3 中的下拉列表

转载 作者:行者123 更新时间:2023-12-02 05:27:22 25 4
gpt4 key购买 nike

我有一个返回 CategoryID 和 CategoryName 的通用列表方法。我已经花了足够的时间进行研究,但似乎无法将它们组合在一起。我对 MVC 很陌生。

这是我在存储库中的 DropdownList 方法。我取回了数据……到目前为止一切顺利。

public List<DropdownList> GetDDl()
{

return catDDL;
}

这是我的 Controller 代码(尝试)

   IEnumerable<SelectListItem> liCat =
userRepository.Getddl().Select(c => new SelectListItem
{
Value = c.DropDownID.ToString(),
Text = c.DropDownText
}
ViewBag.catItems = new SelecList(liCat,"Value","Text");

这是我的观点

@Html.Dropdownlist("catItems","Select Category)

最佳答案

尽量避免像 ViewBagViewData 这样的动态内容。使用强类型 View 。

ViewModel 只是一个 POCO 类,我们将使用它在您的 View 和操作方法之间传输数据。它将特定于 View 。

例如:如果你想创建一个创建产品的 View 。所以像这样创建一个 View 模型

public class Product
{
public string Name { set;get;}
public IEnumerable<SelectListItem> Categories{ get; set; }
public string SelectedCategoryId { get; set; }
//Other Properties as needed

}

现在在您的 GET 操作方法中,您创建此 View 模型的对象并初始化值并发送到 View 。

public ActionResult Create()
{
var vm=new Product();
vm.Categories=userRepository.Getddl().
Select(c => new SelectListItem
{
Value = c.DropDownID.ToString(),
Text = c.DropDownText
});
return View(vm);
}

现在将您的 View 强类型化为我们的 Product 类并使用 Html.DropDownListFor 辅助方法。

@model PersonsProduct 
@using (Html.BeginForm())
{
@Html.DropDownListFor(x => x.SelectedCategoryId,
new SelectList(Model.Categories,"Value","Text"), "Select")
<input type="submit" value="save" />
}

现在在您的 HttpPost 中,您可以获得这样的表单值

[HttpPost]
public ActionResult Create(Product model)
{
if(ModelState.IsValid)
{
//check model.SelectedCategoryId
//save and redirect
}
//to do :reload the dropdown again.
return view(model);
}

关于asp.net-mvc-3 - 将通用列表绑定(bind)到 MVC3 中的下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12877601/

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