You need to enable JavaScript to run this app. ASP.NET MVC 用POST请求替代window.location.href GET请求的实现方案
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC 用POST请求替代window.location.href GET请求的实现方案

调整方案

1. 控制器端修改

修改点:

  • 将动作方法的请求特性从[HttpGet]替换为[HttpPost]
  • 对齐参数命名,和前端传入的参数名保持一致(你原有代码中前端传递的参数名和控制器接收参数名不匹配,已同步修正)
  • 保留原有的跳转逻辑即可,POST请求处理完成后返回RedirectToAction符合PRG(Post/Redirect/Get)模式规范

示例代码:

[HttpPost]
public async Task<ActionResult> MoveItem(int id, string comment, string empData, string currentItem)
{
    // 你的业务逻辑写在这里
    return RedirectToAction("EditEmpManagemnt", "EmpManagement", new { id = id });
}

注意:如果你要保留控制器原有的参数名decision和currentworkflow,只需要把前端传递的参数键对应改为decision和currentworkflow即可,不需要修改控制器代码。


2. JavaScript端修改

修改点:

  • 原有的window.location.href是GET请求,无法触发POST接口,替换为jQuery的POST AJAX请求
  • 修正原有代码的笔误:commentToSave未定义,改为你实际获取的评论变量commentValue
  • 修正请求路径和控制器方法名匹配的问题,你原有JS写的请求路径是PushItem,和控制器方法名MoveItem不一致,已同步修正
  • AJAX请求成功后再执行页面跳转逻辑

示例代码:

function MoveItem() {
    var empId = document.getElementById('EMP_ID').value;
    var commentValue = $("#RESPONSE").val();
    // 修正原笔误:commentToSave改为commentValue
    if ($.trim(commentValue).length > 0) {
        showAjaxLoading();
        var empData= "APPROVE";
        // 如果控制器在Employee区域下,地址改为'/Employee/EmpManagement/MoveItem'
        var baseControllerUrl = '/EmpManagement/MoveItem';
        // 发送POST请求
        $.post(baseControllerUrl, {
            id: empId,
            comment: commentValue,
            empData: empData,
            currentItem: itemData // 注意itemData变量你需要保证在当前作用域可以访问到
        }, function(res) {
            // 请求成功后跳转编辑页
            window.location.href = '/EmpManagement/EditEmpManagemnt?id=' + empId;
        }).fail(function() {
            // 请求失败的处理逻辑
            aet('提交失败,请重试', 'E');
            hideAjaxLoading();
        });
    } else {
        aet('Please enter comments', 'E');
    }
}

补充说明:如果你使用的是ASP.NET Core且开启了防伪令牌验证,POST请求需要携带防伪参数,只需要在请求参数里加上__RequestVerificationToken: $('input[name="__RequestVerificationToken"]').val()即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 21:57:01