MVC从数据库取下拉列表 viewbag基础用法

本文详细介绍了在ASP.NET MVC框架中如何使用ViewBag在视图层直接加载控制器数据,以及通过AJAX从数据库获取并转换List数据的方法。探讨了两种方式的实现细节,包括从Controller取数据到View的全过程和使用JavaScript处理数据的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.直接从Controller取进view

Controller:

   function GetRole(){
       foreach (var item in GetRole)	//GetRole为之前声明过的集合
                            {
                                if (item.Role != null && item.Role != "") {
                                    GetRoleList.Add(item.Role, item.Role);
                                }
                            }
         ViewBag.GetRole = GetRoleList;
         return JsonConvert.SerializeObject(GetRole);
      	}

一定要记得在Index()方法里调用GetRole()

View:首先要在开头加上

@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

然后在要引入的地方

@foreach (var item in ViewBag.GetOpsLead)
                            {
                                <option value="@item.Key">@item.Value</option>
                            }

根据我对ViewBag的理解,这样做应该会更方便?不用js调数据了,直接在页面上调用了controller里的方法

2.从js导入

在数据库将数据选项存为List(string)类型
从List(T)到List(string)的转换:

Dictionary<string, List<string>> dic = new Dictionary<string, List<string>>();
List<string> list = new List<string>();
List<database> list = dbe.database.OrderBy(p => p.column).ToList();
foreach (database im in datalist)		//database为数据库名,datalist为取出的值,类型为list<database>
            {
                list.Add(im.column);		//list为空list,类型为string<list>,column为实体中字段名
            }
dic.Add("COLUMN", list);
return dic;

在js中:

$.ajax({
    type: 'GET',
    url: '略',
    success: function (result) {
        $(result['COLUMN']).each(function (i, str) {
            $('#ID).append('<option value="' + str + '">' + str + '</option>');		//下拉列表的id
        });
     }
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值