我有一個JavaScript函數調用getRoute
應該從我的MVC控制器採取一個route
對象的列表,並將它們插入我的看法下拉菜單。試圖循環通過JSON數據在我的JavaScript(ASP.Net)
下面是函數:
function getRoute(selectedPart) {
var $form = $('#form-create'),
$routeDropdown = $('#dd-route'),
structure = _.template($('#tmpl-route-list').html());
if (selectedPart) {
$form.block();
$.get('@Url.Action("getRouteFromPart", "wip")', {
partId: selectedPart
}).done(function (response) {
$form.unblock();
var html = structure({ routes: response });
$routeDropdown.html(html);
});
} else {
$routeDropdown.html(structure({ routes: null }));
}
}
說明
selectedPart
是從不同的下拉(這裏未示出)的值。根據選擇的內容,getRoute
將點擊"wip"
控制器並使用它的「getRouteFromPart"
」操作返回一個名爲routes
的路由對象列表。然後它應該通過名爲#tmpl-route-list
的underscore.js模板將該列表放入下拉菜單。
下面是模板代碼:
<% if (routes) { %>
<% foreach(var route in routes.routes) { %>
<option value="<%= route.routesId %>">
<% route.routesName %>
</option>
<% } % >
<% } %>
說明
routes.routes
指路線列表裏面的路線響應對象。我試圖循環訪問該列表,並將每個route
對象的routeId
和routeName
放入其自己的<option>
標記中以顯示下拉列表。
不用說,它不起作用。在JavaScript控制檯,它給了我錯誤「意外的令牌var」。如果我從foreach中刪除'var',它會顯示「Unexpected token {」。
注:我在網站的另一部分幾乎有完全相同的設置,並且完美地工作。唯一的區別是那裏它只是一個對象放在下拉列表和這裏我想用對象列表來做到這一點。很明顯,我的循環或某事有什麼問題,但我不知道如何解決它。
有人可以幫忙嗎?