如何从JSON返回更新我的下拉列表
How to update my dropdown list from JSON return?
我的视图中有一个下拉列表:
<label><span class="hide">Type</span>@Html.DropDownListFor(m => m.FromValue, new SelectList(Model.FromType), new { id = "RSFromType"})</label>
这是我认为的模型:
public List<WebAMT.Layer.Models.Types.SearchFilterType> FromType { get; set; }
以下是一个列表:
public enum SearchFilterType : int
{
All = 0,
PreferredEntity = 1,
ActualEntity = 2,
CityState = 3
}
模型在我的控制器中设置:
vm.FromType = SearchLogic.GetOriginList(true);
如果为true(默认值),此下拉列表将显示All、PreferredEntity、ActualEntity和CityState。
我需要在选择单选按钮时更改这些值:
<label>@Html.RadioButtonFor(m => m.ReservationArea, false, new { id = "RSMyReservationArea" }) My Reservation Area</label>
<label>@Html.RadioButtonFor(m => m.ReservationArea, true, new { id = "RSAllReservationArea" }) All Reservation Areas</label>
因此,当选择第一个按钮时,我需要列表来显示所有四个选项,但当选择第二个时,我只需要它来显示all和CityState。
我已经为此创建了一些JQuery:
$(function () {
$('#RSMyReservationArea').click(function () {
UpdateReservationSearchArea(true);
});
$('#RSAllReservationArea').click(function () {
UpdateReservationSearchArea(false);
});
});
function UpdateReservationSearchArea(area) {
$.ajax({
type: "GET",
async: false,
url: "@Url.Action("UpdateReservationArea", "Search")",
data: { MyResArea: area },
cache: false,
dataType: "html",
failure: function () {
alert(" An error occurred.");
},
success: function(result) {
UpdateToAndFromTypes(result);
}
});
}
这导致了我的控制器:
[HttpGet]
public JsonResult UpdateReservationArea(ReservationSearchVM vm, bool myResArea)
{
List<WebAMT.Layer.Models.Types.SearchFilterType> originList = new List<Layer.Models.Types.SearchFilterType>();
originList = SearchLogic.GetOriginList(myResArea);
return Json(new { originList }, JsonRequestBehavior.AllowGet);
}
这就是我遇到的问题。我有这个JQuery来处理返回,我不知道如何根据JSon返回的内容更新FromType的下拉列表,因为我所做的似乎都不起作用。所以我有一个控制台日志并检查了结果,true和false都返回originList{0,1,2,3}或originList{0,1,2,3}:
function UpdateToAndFromTypes(result) {
$("#RSFromType").empty();
console.log(result);
};
我需要在最后一个脚本中包含什么来更新dropdown list
的内容。
假设您的result
位于正确的json可枚举对象中。
function UpdateToAndFromTypes(result) {
$("#FromValue").empty();
$.each(result, function(key, value) {
$('#FromValue')
.append($("<option></option>")
.attr("value",key)
.text(value));
});
};
由于标记已经呈现,您可以继续并替换选择标记。
function UpdateToAndFromTypes(result)
{
$("#RSFromType").empty();
var selectContainer;
for(var i=0; i < result.originList.length;i++)
{
selectContainer += "<option>" + result.originList[i] + "</option>";
}
$("#RSFromType").html(selectContainer);
};
相关文章:
- Angular没有根据模型更新我的选择元素
- 如何使用ng repeat中的选定输入更新我的对象
- 如何在 D3 中更新我的多折线图数据
- 如何使用javascript异步更新我的内容
- knockout.js获胜't更新我的foreach绑定,尽管更改已注册
- 如何在不按ctrl+F5的情况下更新我的Web应用程序(chrome、mozilla、IE8+)更改
- 为什么'这些AJAX调用正在更新我的变量
- 如何使用错误消息或成功消息动态更新我的跨度
- 我想听听服务器上的更改,并相应地更新我的网页.我如何用Javascript做到这一点
- Angular没有't在http请求后更新我的对象
- $apply在angularJs中没有更新我的范围变量
- ng模型没有更新我的对象值
- 如何根据用户选择更新我的税款
- Javascript:如何更新我的事件侦听器,使其仅在用户停止键入时进行更改
- 如何在 d3.js 中更新我的图形图例
- Angular ngClass 没有更新我的类,即使我的条件按预期发生了变化
- 为什么挖空不会更新我的文本框中的值
- 如何动态更新我的对象
- Javascript:如何动态更新我的闭包
- 指令不更新我的范围