使用javascript从ASPX代码页面后面访问一个类

时间:2018-03-15 14:46:15

标签: javascript c# asp.net class code-behind

我试图从javascript中的代码访问一个类,但我收到错误,说它在这个上下文中不存在。在此之前,这对我有用。

这是我的代码: 代码背后:

public class ReviewData
{
    public int NumberOfReviews { get; set; }
    public double AvgReviewScore { get; set; }
}

此变量已进一步填充

这是我的javascript:

<script type="text/javascript">
   var reviewData = "<%=ReviewData%>"
</script>

2 个答案:

答案 0 :(得分:2)

您必须使用JSON.Net将您的类序列化为JSON字符串。在您的课程中,创建一个名为&#34; Serialize()&#34;的方法。返回一个字符串并自行序列化。

在Javascript中,您可以编写如下内容: {{1}}

从那里,您可能必须使用Javascript将其解析回字符串中的对象...但您无法将实际的C#类传递给Javascript。你能做的最好的就是JSON。

此外,除非你的代码隐藏中有ReviewData的对象引用,否则这不会起作用。

答案 1 :(得分:1)

如果您需要将对象列表用作数组,那么Brandon Millers的答案是正确的。但是,如果要访问类的单个属性,则可以执行此操作。 将其声明为公共变量

public ReviewData reviewData;

protected void Page_Load(object sender, EventArgs e)
{
    reviewData = new ReviewData();
    reviewData.NumberOfReviews = 5;
}

现在,您可以在aspx上访问变量reviewData的属性。

<script type="text/javascript">
    var reviewData = '<%=reviewData.NumberOfReviews%>';
</script>