1

我想在 javascript 函数中访问 ac# 变量值,其代码类似于下面的代码段:

@{ var i=0; }

....

<script type="javascript">

function MyObjects(e) {

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

</script>

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

4

2 回答 2

3

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

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

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

就是这样做的。

但是,如果您期望

{ i=@i+1;}

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

解决方案

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

于 2012-07-30T15:34:22.790 回答
1

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

<script type="text/javascript">
    var i = parseInt("@i");
</script>
于 2012-07-30T15:38:29.643 回答