ASP.NETMVC中填充下拉列表的最佳实践
创始人
2024-09-19 10:00:36
0

在ASP.NET MVC中,通常使用以下代码来将数据填充到下拉列表中:

  1. Controler层
// 获取数据
var items = new List()
{
    new SelectListItem { Text = "选项1", Value = "1" },
    new SelectListItem { Text = "选项2", Value = "2" },
    new SelectListItem { Text = "选项3", Value = "3" },
};

// 设置ViewBag
ViewBag.ItemList = items;
  1. View层
@Html.DropDownListFor(x => x.ItemId, ViewBag.ItemList as SelectList, "--请选择--")

这种方法的优点是非常简单并且容易理解,缺点是不能很好地维护和调试。更好的实践是使用ViewModel来填充下拉列表。

  1. ViewModel层
// 添加下拉列表项类,用于封装Value和Text两个属性
public class SelectListItemViewModel
{
    public string Value { get; set; }
    public string Text { get; set; }
}

// 使用ViewModel来填充下拉列表
public class MyViewModel
{
    public List ItemList { get; set; }
    public string ItemId { get; set; }
}
  1. Controller层
// 获取数据并填充ViewModel
var items = new List()
{
    new SelectListItemViewModel { Text = "选项1", Value = "1" },
    new SelectListItemViewModel { Text = "选项2", Value = "2" },
    new SelectListItemViewModel { Text = "选项3", Value = "3" },
};

var viewModel = new MyViewModel
{
    ItemList = items
};

// 将ViewModel传递到View
return View(viewModel);
  1. View层
// 使用Html.DropDownListFor方法生成下拉列表
@Html.DropDownListFor(x => x.ItemId, new SelectList(Model.ItemList, "Value", "Text"), "--请选择--")

使用ViewModel来填充下拉列表的方法更加灵活和

相关内容

热门资讯

交流学习经验!大玩家福建十三水... 交流学习经验!大玩家福建十三水辅助(透视)蜀山四川破解版ios(详细开挂外开挂教程)1、实时大玩家福...
一分钟揭秘!逗娱碰胡辅助器(透... 一分钟揭秘!逗娱碰胡辅助器(透视)新九哥开挂(详细开挂外开挂教程)亲,关键说明,逗娱碰胡辅助器赛季回...
教学盘点!邳州友友辅助软件下载... 教学盘点!邳州友友辅助软件下载(透视)闲逸辅助神器免费(详细开挂外开挂教程)1、上手简单,内置详细流...
分享给玩家!闲聚鱼虾蟹软件脚本... 分享给玩家!闲聚鱼虾蟹软件脚本辅助器(透视)新超凡辅助(详细开挂外开挂教程);闲聚鱼虾蟹软件脚本辅助...
科技揭秘!嘟咪互动修改器(透视... 科技揭秘!嘟咪互动修改器(透视)情怀辅助哪里可以装(详细开挂外开挂教程)情怀辅助哪里可以装辅助器中分...
信息共享!拱趴大菠萝攻略(透视... 信息共享!拱趴大菠萝攻略(透视)新二号辅助(详细开挂外开挂教程)拱趴大菠萝攻略辅助器中分为三种模型:...
玩家必看!微信小程序功夫川辅助... 玩家必看!微信小程序功夫川辅助(透视)哈糖大菠萝提高胜率(详细开挂外开挂教程);玩家必看!微信小程序...
一分钟了解!!微乐家乡游戏攻略... 一分钟了解!!微乐家乡游戏攻略(透视)杭州都莱辅助软件有没有用(详细开挂外开挂教程)1、杭州都莱辅助...
必看攻略!518互游破解(透视... 必看攻略!518互游破解(透视)决战卡五星作弊(详细开挂外开挂教程)1、全新机制【决战卡五星作弊软件...
玩家实测!闲逸亲友圈app辅助... 玩家实测!闲逸亲友圈app辅助(透视)衢州都莱辅助器下载(详细开挂外开挂教程)1、构建自己的衢州都莱...