我试图从javascript中的代码访问一个类,但我收到错误,说它在这个上下文中不存在。在此之前,这对我有用。
这是我的代码: 代码背后:
public class ReviewData
{
public int NumberOfReviews { get; set; }
public double AvgReviewScore { get; set; }
}
此变量已进一步填充
这是我的javascript:
<script type="text/javascript">
var reviewData = "<%=ReviewData%>"
</script>
答案 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>