在JavaScript(JS)中直接传递C#变量是不可能的,因为这两种语言运行在不同的环境中。JavaScript主要运行在浏览器端或Node.js环境中,而C#通常运行在服务器端,如ASP.NET应用程序中。不过,可以通过以下几种方式间接地在JavaScript中使用C#变量的值:
你可以在服务器端使用C#编写一个Web API,该API可以返回C#变量的值。然后,在客户端使用JavaScript通过AJAX请求这个API来获取数据。
// Controllers/MyController.cs
[HttpGet("api/data")]
public IActionResult GetData()
{
string myVariable = "Hello from C#!";
return Ok(myVariable);
}
fetch('/api/data')
.then(response => response.json())
.then(data => {
console.log(data); // 输出: Hello from C#!
});
如果你在使用ASP.NET MVC或ASP.NET Core MVC,可以在Razor视图中将C#变量嵌入到JavaScript代码中。
@{
string myVariable = "Hello from C#!";
}
<script>
var jsVariable = '@myVariable';
console.log(jsVariable); // 输出: Hello from C#!
</script>
如果你需要在客户端和服务器端之间进行实时通信,可以使用SignalR。SignalR允许服务器端(C#)主动向客户端(JavaScript)推送数据。
// Hubs/DataHub.cs
public class DataHub : Hub
{
public string GetData()
{
return "Hello from C#!";
}
}
const connection = new signalR.HubConnectionBuilder()
.withUrl("/dataHub")
.build();
connection.start().then(() => {
connection.invoke("GetData").then(data => {
console.log(data); // 输出: Hello from C#!
});
});
选择哪种方式取决于你的具体需求和应用场景。
领取专属 10元无门槛券
手把手带您无忧上云