2013-05-26 56 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得到。