我有一个项目,有很多选择框加载了参考数据,即客户类型。为此,我创建了一个单独的Controller,它将数据作为JSON结果返回。这是通过jQuery函数在页面加载时调用的,用于加载选择列表。
在提交给客户控制器时,如果选择了一个选项但存在验证错误,则控制器会添加模型错误消息并返回到包含未更改模型数据的视图。
如何让select保留所选的选项?即用户选择值为123的选项,当表单从帖子返回到控制器时,所选选项不会通过jquery重新加载“重新选择”。
答案 0 :(得分:3)
没有看到您的代码很难为您提供准确的答案。但是,根据我所知,我可以假设这样的事情对你有用:
$(function() {
$.getJSON("/Customer/GetCustomerTypes", null, function(data) {
//Selected CustomerType received from the Customer Controller... e.g. 123
var selectedCustomerType = <%=selectedCustomerType %>;
var dropdownList = $("#customerTypeList")[0]; //Id of the dropdown
$.each(data, function(index, optionData) {
var option = new Option(optionData.Text, optionData.Value);
if(optionData.Value == selectedCustomerType) {
$(option).attr('selected','selected');
}
if ($.browser.msie) {
dropdownList.add(option);
}
else {
dropdownList.add(option, null);
}
});
});
});