You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core MVC:Ajax传值后无法渲染WorkItemTable新视图

问题解决方法

原因分析

你通过Ajax发起请求后,控制器已正确生成WorkItemTable视图的HTML内容,但当前JS代码仅执行了弹窗提示,未对返回的HTML内容做渲染处理,因此视图无法显示。

方案一:在当前页面指定区域加载视图

步骤1:添加视图容器

在当前视图中新增一个用于承载新视图的容器:

<div id="workItemTableContainer"></div>

步骤2:修改Ajax回调逻辑

更新JS代码,在success回调中将控制器返回的HTML插入到容器中:

function GetSelectedAreaPathChildren3() {
    var selectedAreaPathItems = '';
    $("#AreaPathMultiSelectDropdownList :selected").each(function () {
        selectedAreaPathItems += this.value + ";";
    });

    var selectedIterationPathItems = '';
    $("#IterationPathMultiSelectDropdownList :selected").each(function () {
        selectedIterationPathItems += this.value + ";";
    });

    console.log(selectedAreaPathItems);
    $.ajax({
        url: '@Url.Action("WorkItemTable", "PbcAzureDevOps")',
        type: "POST",
        data: { selectedAreaPathItems, selectedIterationPathItems },
        success: function (response) {
            // 将返回的视图HTML插入指定容器
            $("#workItemTableContainer").html(response);
        }
    });
}

方案二:直接跳转到新页面显示视图

如果需要单独打开新页面展示视图,可放弃Ajax,改用表单提交或URL跳转:

方法1:表单提交

步骤1:添加表单结构

在当前视图中插入表单:

<form id="workItemForm" action='@Url.Action("WorkItemTable", "PbcAzureDevOps")' method="POST">
    <input type="hidden" id="selectedAreaPath" name="selectedAreaPathItems" />
    <input type="hidden" id="selectedIterationPath" name="selectedIterationPathItems" />
</form>

步骤2:修改JS提交逻辑

更新JS代码,填充隐藏字段后提交表单:

function GetSelectedAreaPathChildren3() {
    var selectedAreaPathItems = '';
    $("#AreaPathMultiSelectDropdownList :selected").each(function () {
        selectedAreaPathItems += this.value + ";";
    });

    var selectedIterationPathItems = '';
    $("#IterationPathMultiSelectDropdownList :selected").each(function () {
        selectedIterationPathItems += this.value + ";";
    });

    // 填充隐藏字段值
    $("#selectedAreaPath").val(selectedAreaPathItems);
    $("#selectedIterationPath").val(selectedIterationPathItems);
    // 提交表单跳转至目标视图
    $("#workItemForm").submit();
}

方法2:构造URL跳转(GET方式)

步骤1:修改控制器请求方式

为控制器方法添加[HttpGet]特性,支持GET请求:

[HttpGet]
public async Task<IActionResult> WorkItemTable(string selectedAreaPathItems, string selectedIterationPathItems)
{
    List<WorkItemInfo> retrievedWorkItems =
        await GetAllSelectedWorkItems(selectedAreaPathItems, selectedIterationPathItems);

    return View(retrievedWorkItems);
}

步骤2:修改JS跳转逻辑

更新JS代码,构造URL并跳转:

function GetSelectedAreaPathChildren3() {
    var selectedAreaPathItems = '';
    $("#AreaPathMultiSelectDropdownList :selected").each(function () {
        selectedAreaPathItems += this.value + ";";
    });

    var selectedIterationPathItems = '';
    $("#IterationPathMultiSelectDropdownList :selected").each(function () {
        selectedIterationPathItems += this.value + ";";
    });

    // 构造带参数的跳转URL
    var url = '@Url.Action("WorkItemTable", "PbcAzureDevOps")' + 
              '?selectedAreaPathItems=' + encodeURIComponent(selectedAreaPathItems) + 
              '&selectedIterationPathItems=' + encodeURIComponent(selectedIterationPathItems);
    // 跳转到目标视图页面
    window.location.href = url;
}

内容的提问来源于stack exchange,提问作者SpastkChild

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 15:15:32