在javascript中访问cs变量

时间:2011-03-03 09:45:46

标签: c# javascript variables razor

我在cshtml页面的@ {}里面有一个var变量。我想在javascript中访问此变量。 可能吗?? 我怎么能这样做?

@{  
    var array=[""];    
}

3 个答案:

答案 0 :(得分:6)

您可以尝试以下方法:

@{
    var array = new [] {"foo", "bar"};
}

<script type="text/javascript">
    var array = [@Html.Raw(String.Join(",", array.Select(s => "'" + s + "'")))];

    alert(array[1]);
</script>

它将C#数组序列化为JavaScript格式为[“foo”,“bar”]。

答案 1 :(得分:3)

这是您何时可以考虑使用JSON的完美示例。假设您正在使用ASP.NET Web页面(而不是Web Forms / MVC)进行开发,请在App_Code目录中使用以下代码创建一个名为Javascript.cshtml的帮助文件:

@using System.Web.Script.Serialization;

@helper ToJson(object obj) {
    var ser = new JavaScriptSerializer();
    @Html.Raw(ser.Serialize(obj))
}

现在,如果您的主页面可以像这样引用帮助程序:@Javascript.ToJson(myObj)。因此,在您的页面中,您可能会执行以下操作:

@{
    var myCSharpObj = new { First = "1st", Second = "2nd" };
}
<script language="javascript">
    var myJSObj = @Javascript.ToJson(myCSharpObj);
    alert(myJSObj.Second);
</script>

答案 2 :(得分:0)

由于浏览器中实际上并不存在变量,因此您需要使用某种类型的AJAX技术。

普通的旧ASMX Web服务可能是您最好的选择。

当然,如果您只是想要它的初始值,您可以在页面构图期间将其设置为文字。

我不熟悉确切的格式。