【发布时间】:2011-09-12 04:18:39
【问题描述】:
问题:如何在 MVC3 的下拉菜单中优雅地添加更多课程
我正在使用单独的屏幕,但理想情况下希望将所有内容都放在同一个屏幕上,可能使用 ajax 和 jquery。
【问题讨论】:
标签: jquery ajax model-view-controller asp.net-mvc-3
问题:如何在 MVC3 的下拉菜单中优雅地添加更多课程
我正在使用单独的屏幕,但理想情况下希望将所有内容都放在同一个屏幕上,可能使用 ajax 和 jquery。
【问题讨论】:
标签: jquery ajax model-view-controller asp.net-mvc-3
我最终只是为我的“子”项目添加了另一个提交按钮,并在此处的第二个答案中调用它:
How do you handle multiple submit buttons in ASP.NET MVC Framework?
【讨论】:
我发现一个更好的解决方案是使用 jquery.ui 自动完成。然后,您可以轻松添加课程。我之前在类似的场景中非常成功地使用过它。您还可以获得对大型列表进行 ajax 调用的优势。
这里是一些示例 jquery 代码,它根据用户在文本框中键入的内容从服务器获取列表(routeList 是显示课程列表的框,routeId 是一个隐藏字段,其中包含所选的 id路线):
$("#routeList").autocomplete({
source: function (request, response) {
$("#ajax_loader").show(); //Gets the whirly graphic going
$("#routeId").val("0");
var postData = { term: request.term };
var jqxhr = $.post("/Ajax/RouteAutoComplete", $.postify(postData), function (data) {
$("#ajax_loader").hide();
response(data);
});
}
,
minLength: 1,
select: function (event, ui) {
$("#routeId").val(ui.item ? ui.item.id : "0");
}
});
当你回帖时,如果 routeId=0,那么你可以根据 routeList 中的文本添加一个新课程
【讨论】: