我有一個Javascript數組的字符串,我試圖創建一個HTML表格來包含這些字符串旁邊的下拉菜單。asp.net mvc - 如何使用Javascript創建多個DropDownLists
$.each(data, function (key, val) {
var tr = $("<tr></tr>");
$("<td>"+ val + "</td>").appendTo(tr);
var tmp = '<td>'+'@(Html.DropDownList("SomeDropdown", (SelectList)ViewBag.SomeList))'+'</td>';
//var tmp = "<td><select><option value="0">Other</option></select> </td>";
$(tmp).appendTo(tr);
tr.appendTo("#tableData");
});
使用HTML工作正常,但當我使用剃鬚刀嘗試相同的事情時,我得到異常:「未終止的字符串常量」。 即使這樣做,新的問題將是所有的DropDownlists將在生成的HTML中具有相同的名稱和ID。 有沒有更好的方法來完成這個?
我想爲我的DropDownList使用Razor的主要原因是使用我的ViewBag。
這個想法是使用HTML和我的ViewBag創建一個下拉列表,並在需要時使用一個新的ID克隆它。
的JavaScript:
var i = 0;
var prefix = 'pre';
$.each(data, function (key, val) {
var tr = $('<tr></tr>');
var td = $('<td></td>');
i++;
var tmp = $("select:first").clone().attr("id", prefix+i);
tmp.appendTo(td);
td.appendTo(tr);
$(td).appendTo(tr);
tr.appendTo('#tableData');
});
的HTML(我包裹在一個隱藏的div 「原始」 的下拉菜單,因爲它是隻需要複製):
<div style="display:none">
<select class="selector">
@foreach (var item in ViewBag.SomeList)
{
<option value="@item.Value">
@item.Text
</option>
}
</select>
</div>
你可以分享一些剃刀和JavaScript代碼? – 111