【问题标题】:How to access c# variable value in javascript function in .net MVC3?如何在.net MVC3中的javascript函数中访问c#变量值?
【发布时间】:2025-12-30 07:30:06
【问题描述】:

我想在一个javascript函数中访问一个c#变量值,它的代码类似于下面这个sn-p:

@{ var i=0; }

....

<script type="javascript">

function MyObjects(e) {

for (j = 0; j <= @i; j++) {....}

</script>

..... { i=@i+1;}

【问题讨论】:

  • 这甚至没有错。你到底想完成什么?
  • 当我在 javascript 中访问 i 值时,我只能找到它的值为 0,而不是更新的值。
  • 我知道这行不通,但是您要尝试做什么?你为什么要这么做?

标签: c# javascript .net asp.net-mvc-3


【解决方案1】:

您可以轻松地将 C#/Razor 值作为字符串获取。

<script type="text/javascript">
    var i = parseInt("@i");
</script>

【讨论】:

  • 谢谢大家。我得到了我想要的。
【解决方案2】:

您不能从 JavaScript “访问” C# 变量,因为 C# 代码在服务器端运行以呈现 HTML,而包含生成的 JavaScript 的 HTML 在客户端浏览器中运行。

如果您想将 C# 变量的值呈现到客户端上运行的 JavaScript 代码中,您的代码

for (j = 0; j <= @i; j++) {....}

就是这么做的。

但是,如果您期望

{ i=@i+1;}

在客户端运行并影响服务器上的状态,它不会。

解决方案

如果您需要通过 JavaScript 更新服务器上某些内容的状态而不将 HTML 页面发回服务器,您可以使用 Ajax 回调来完成。

【讨论】: