具有多个参数的 MVC 刷新视图



这是我的问题。我有一个索引页面,该页面加载了一个包含员工及其利用率列表的部分视图。在该页面中有一个下拉列表,允许用户筛选以仅查看从下拉列表中选择主管的人员。这一切都运行良好,直到我尝试使用报告的开始周进行第二个下拉列表。现在,每当我选择任一下拉列表时,部分视图根本不加载。我通过控制器和加载数据的所有步骤进行了调试,一切看起来都正确,它只显示一个空表。

查看代码

@{
    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。

最新更新