如何解决下拉列表未使用Ajax C#/ ASP.NET MVC填充
我正在尝试在模态内填充一个下拉列表,但是我的下拉列表没有填充,我不确定为什么。我在下面提供了我的代码。我已经尝试将网址分别设为inspectionController
和inspection
,但没有得到任何结果。
我提到了dropdown menu populate another c# mvc json ajax,但有些困惑
public IDBSet<TradePartner> TradePartners { get; set; }
查看模型:
public class TradePartnerviewmodel
{
public int Id {get; set;}
...
public string ConstructionPhase{get;set;}
...
}
查看:
<td class="moveto" style="padding: 0" ng-hide="printMode">
<div class="dropdown pull-right">
<a class="btn btn-sm btn-link" data-toggle="dropdown">
<b>move to</b>
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li>
@if (appName.Contains("ABC"))
{
<a class="btn btn-sm btn-link" data-toggle="modal" data-target="#moDalemailItem"><b>Email Item</b></a>
}
</li>
</ul>
<div id="moDalemailItem" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title" style="text-align-last: center">Email Item</h4>
</div>
<div class="modal-body">
<div class="row">
<form id="myForm">
<label for="ConstructionPhaseDropdown">ConstructionPhase</label>
<select class="form-control" id="ConstructionPhaseDropdown" name="ConstructionPhaseDropdown"></select>
</form>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</div>
</td>
<script type="text/javascript">
$(document).ready(function () {
$("#ConstructionPhaseDropdown").change(function () {
$.ajax({
type: 'GET',contentType: "application/json; charset=utf-8",data: {},url: "/inspection/TradePartner/",success: function (data) {
var a = '<option value="-1">Please select an item</option>';
for (var i = 0; i < data.length; i++) {
a += '<option value="-1"' + data[i].ConstructionPhase + '">' + '</option>'
}
$("#ConstructionPhaseDropdown").html(a);
},error: function (a,jqXHR,exception) { }
});
});
});
</script>
控制器方法:
public class inspectionController : Controller
{
public ActionResult TradePartner()
{
return Json(db.TradePartners.Select(x => new
{
ConstructionPhase = x.ConstructionPhase
}).ToList(),JsonRequestBehavior.ALlowGet);
}
}
解决方法
更改下拉值时会发生AJAX操作:
$("#ConstructionPhaseDropdown").change(function () {
// populate the drop-down
});
但是您不能更改下拉值,因为它没有值:
<select class="form-control" id="ConstructionPhaseDropdown" name="ConstructionPhaseDropdown"></select>
因此您永远无法调用该操作来填充下拉列表。
听起来好像您想在页面加载时填充它:
$(document).ready(function () {
$.ajax({
// your current AJAX code
});
});
基本上不能删除包装了整个内容的change
处理程序,因为您还不能更改该值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。