这是我的问题。我有一个索引页面,该页面加载了一个包含员工及其利用率列表的部分视图。在该页面中有一个下拉列表,允许用户筛选以仅查看从下拉列表中选择主管的人员。这一切都运行良好,直到我尝试使用报告的开始周进行第二个下拉列表。现在,每当我选择任一下拉列表时,部分视图根本不加载。我通过控制器和加载数据的所有步骤进行了调试,一切看起来都正确,它只显示一个空表。
查看代码
@{
ViewBag.Title = "Resource Utilization";
}
<h3>Resource Utilization Totals</h3>
<Section class="form-group">
<div float:left> @Html.DropDownList("ProjectLeadId", null, "All Resources", htmlAttributes: new { @class = "form-control", style = "width:250px;" })</div>
<div float:right> @Html.DropDownList("ProjectWeeks", null, htmlAttributes: new { @class = "form-control", style = "width:250px;" })</div>
</Section>
<div id="report">
@Html.Action("GetList")
</div>
@section scripts{
<script type="text/javascript">
$(function () {
$("#ProjectLeadId, #ProjectWeeks").change(function () {
$("#report").load("/ResourceUtilizationReport/GetList?LeadId=" + $("#ProjectLeadId").val() + "&StartWeek=" + $("#ProjectWeeks").val());
});
});
</script>
}
控制器代码
public PartialViewResult GetList(int? LeadId, DateTime? StartWeek)
{
var viewModel = new UtilizationViewModel();
viewModel.Utilization = _utilizationReportImporter.GetUtilization(12, LeadId, StartWeek);
return PartialView(viewModel);
}
您可以在js
中尝试这样的事情:
<script type="text/javascript">
$(function () {
var data = {
"LeadId": $("#ProjectLeadId").val(),
"StartWeek": $("#ProjectWeeks").val()
}
$("#ProjectLeadId, #ProjectWeeks").change(function () {
$("#report").load("/ResourceUtilizationReport/GetList", data);
});
});
</script>
确保x.val()
调用返回预期内容。使用 load
方法的第二个参数可确保JQuery
创建正确的 URL。