javascript - 如何使用对象 MVC 5 C# 的 Javascript 列表填充剃刀 DropDownListFor
问题描述
我想要一个下拉列表,它将根据从另一个下拉列表(Cascade Dropdownlist)中选择的 Id 填充,我希望能够返回以 Javascript 排序的对象列表,然后将其提供给我的下拉列表,但我不知道如何。
<div class="form-group col-sm-6 col-md-6">
<label for="@Html.IdFor(model => model.CoastId)">
@Strings.CoastField
</label>
@Html.DropDownListFor(model => model.CoastId, Model.CoastList, SharedStrings.SelectDefaultOptionText, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.CoastId)
</div>
<div class="form-group col-sm-6 col-md-6">
<label for="@Html.IdFor(model => model.VillageId)">
Village
</label>
@*DropdownListFor(model => model.VillageId, *****MyJavascriptList*****)*@
@Html.ValidationMessageFor(model => model.VillageId)
</div>
然后,我将我的村庄列表以 JSON 格式发送到我的 JavaScript 文件。
<script type="text/javascript">
var villageList = @Html.Raw(Json.Encode(Model.AllVillageList));
Form.init(villageList);
</script>
然后,我在 ID 为“CoastId”的第一个下拉列表中放置了一个 onchange 事件。
var Form = (function ($,_) {
var init = function(villageArray) {
$('#UserName').focus();
if (villageArray !== "") {
$("#CoastId").change(function () {
model.ReturnedVillages = _.filter(villageArray, function (obj) { return obj.RegionId === parseInt($("#CoastId").val()); });
console.log(model.ReturnedVillages);
});
}
};
return {
init: init
};
})(jQuery,_);
先感谢您。
解决方案
嗨@MathD,您是否尝试过使用带有 ViewBag 的 Select List 元素,然后在onchange
Select List 的方法上,您可以获取所选值并通过 AJAX 将其发送到下一个操作以填充第二个 List,这是一个示例
推荐阅读
- google-apps-script - 不允许 ScriptApp.getUserTriggers(ss) - 尽管 oauthScopes。我错过了什么?
- node.js - 无法使用 node.js 在 mongodb 集合中删除
- python - 熊猫向前填充具有特定值的时间戳列(1秒)
- java - Java:如何创建具有“类”对象的实例?
- jenkins - Jenkins 管道:NPE,因为我在 Jenkinsfile 中输入了参数字段名称
- ios - Firebase crashlytics 报告了许多
我的生产版本中的第 0 行崩溃,这些崩溃是真的吗? - encoding - 如何在 elixir 中将二进制转换为 base10(十进制)整数
- django - 根据相关模型中的字段顺序删除重复项
- java - 在同一个路由器上使用多个通道
- microservices - 网关中的用户管理是个好主意吗?