C# 从“我的模型”中的集合动态创建选择列表

C# 从“我的模型”中的集合动态创建选择列表,c#,jquery,asp.net,asp.net-mvc,razor,C#,Jquery,Asp.net,Asp.net Mvc,Razor,我认为: <script type="text/javascript" language="javascript"> $(document).ready(function () { $('a.create').click(function () { // create dropdown, insert in span }) }); </script> <a class='create' h

我认为:

<script type="text/javascript" language="javascript">

    $(document).ready(function () {
        $('a.create').click(function () {
            // create dropdown, insert in span
        })
    });

</script>

<a class='create' href='#'>Click</a>
<span></span>

$(文档).ready(函数(){
$('a.create')。单击(函数(){
//创建下拉列表,在跨距中插入
})
});
在我的控制器方法中,我传入一个集合,该集合应该填充选择列表,并且可以在我的视图中使用
@Model.Agencies
进行访问


我试着从这里开始遵循解决方案(),但我不知道如何从模型集合中创建数组。

基本上只需要填充JavaScript数据数组。这需要将值注入数组

外部
var data={
和foreach循环正在基于
@Model.Agencies
生成值。由于我不知道您的
Agencies
列表是如何定义的,我只是猜测,
Id
Name

var data = {
     @foreach(var agency in Model.Agencies)
     {
       <text>'</text>agency.Id<text>': '</text>agency.Name<text>,</text>
     }    
}
var数据={
@foreach(模型代理中的var代理)
{
'agency.Id':'agency.Name,
}    
}

您可能需要使用标签。

因为您使用的是MVC,所以我可以想出另外两种方法来实现这一点

第一种方法是使用HTML助手函数
@HTML.DropDownList()
@HTML.DropDownList
。这是最简单的方法,它还将所选选项的值属性提交回viewmodel。要使用这些函数,需要将列表设置为SelectList或SelectListItems列表


第二种方法是使用extend The html helper。这需要更多的努力,但如果您需要向生成的html添加自定义属性,则可能是必需的。

如果您只想创建下拉列表,您可以这样创建

      @Html.DropDownListFor(x => x.AgencyId,
        new SelectList(Model.Agencies, dataTextField: "AgencyName", dataValueField: "FinancialYearId"))
然后下拉选择AgencyId中的值