2013-05-26 32 views
0

我有这个在我看来:动态创建从集合中选择列表

<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> 

在我的控制器的方法,我路过应该填充选择列表集合中,可在我看来与@Model.Agencies访问。

我试图按照从这里(How to create dropdown list dynamically using jQuery?)的解决方案,但我不知道如何创建从我的模型收藏的数组。

回答

0

你基本上只需要填充的JavaScript数据阵列。这将要求您将值注入数组。

外侧var data = {和foreach循环是基于所述@Model.Agencies的值。因为我不知道你的Agencies列表是如何定义的呢,我只是猜测,IdName

var data = { 
    @foreach(var agency in Model.Agencies) 
    { 
     <text>'</text>agency.Id<text>': '</text>agency.Name<text>,</text> 
    }  
} 

您可能必须与标签玩。

0

由于您使用的MVC,有2种其他方式我能想到的做到这一点。

第一种方法是使用HTML辅助函数@Html.DropDownList()@Html.DropDownList。这是最简单的方法,它还会将所选选项的value属性提交回您的视图模型。要使用这些函数,您需要将列表设置为SelectList或SelectListItems的列表。

第二种方法是使用扩展的html帮手。这需要更多的努力,但如果您需要将自定义属性添加到生成的html,则可能需要付出努力。

0

如果你想创建只是下拉菜单,你可以创建一个这样

 @Html.DropDownListFor(x => x.AgencyId, 
     new SelectList(Model.Agencies, dataTextField: "AgencyName", dataValueField: "FinancialYearId")) 

和下拉式选择的值,你会在AgencyId得到。