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

如何从JavaScript调用C#方法并传入JavaScript变量作为参数

解决JavaScript调用C#方法并传入JS变量的问题

首先得明确核心逻辑:C#是服务器端代码,在页面发送给浏览器前就执行完毕;JavaScript是客户端代码,在浏览器里才运行。你之前的写法都是试图在服务器渲染阶段引用还没生成的客户端JS变量,这肯定行不通,因为此时GroupCode根本没有值。

正确的做法是通过客户端向服务器发起请求,把JS变量的值传递过去,再调用C#方法。下面分两种常见场景给出具体实现:

场景1:ASP.NET WebForms(WebMethod)

1. 后台C#代码(写在.aspx页面后台类或单独类中)

using System.Web.Services;

public class Tool
{
    [WebMethod] // 必须添加该特性,标记为可通过AJAX调用的方法
    public static string GetValue(string groupCode)
    {
        // 这里编写业务逻辑,比如根据groupCode返回对应值
        return $"针对{groupCode}的处理结果";
    }
}

2. 前端JavaScript代码(使用jQuery AJAX)

// 你的JavaScript变量
var GroupCode = "G001";

// 发起AJAX请求调用C#方法
$.ajax({
    type: "POST",
    url: "YourPage.aspx/GetValue", // 替换为你的.aspx页面路径
    data: JSON.stringify({ groupCode: GroupCode }), // 将JS变量转为JSON格式传参
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(response) {
        // ASP.NET WebMethod的返回结果在response.d属性中
        var value = response.d;
        console.log("获取到的结果:", value);
        // 此处可对value进行后续操作
    },
    error: function(xhr, status, err) {
        console.error("调用失败:", err);
    }
});

场景2:ASP.NET Core(API控制器)

1. 后台C# API控制器

using Microsoft.AspNetCore.Mvc;

[ApiController]
[Route("api/tool")] // 路由前缀
public class ToolController : ControllerBase
{
    [HttpPost("get-value")] // 接口路由
    public IActionResult GetValue([FromBody] string groupCode)
    {
        // 业务逻辑处理
        var result = $"处理后的结果:{groupCode}";
        return Ok(result);
    }
}

2. 前端JavaScript代码(使用原生Fetch API)

var GroupCode = "G001";

fetch("/api/tool/get-value", {
    method: "POST",
    headers: {
        "Content-Type": "application/json"
    },
    body: JSON.stringify(GroupCode)
})
.then(response => response.text())
.then(data => {
    var value = data;
    console.log("获取到的结果:", value);
})
.catch(err => console.error("调用失败:", err));

关键说明

  • 不能直接在页面渲染阶段用@Tool.GetValue(GroupCode)这类写法,因为服务器执行时GroupCode还未在客户端生成,根本拿不到值。
  • 必须通过AJAX/Fetch这类客户端请求,把JS变量的值传到服务器,服务器再调用对应的C#方法处理,最后将结果返回给客户端。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 09:10:44