Работя върху макет, в който трябва да фалшифицирам данните от една база данни и да ги изпратя в рамките на една json array
към javascript. Въпреки това, не мога да го накарам да работи, аз последвах няколко урока и примери и изглежда, че ми липсва нещо.
Това е моят код в CodeBehind
файл:
public class Segment : System.Web.UI.Page
{
public int[,] GetAllSegments()
{
int[,] segments = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
return segments;
}
public void Page_Load(object sender, EventArgs e)
{
int[,] allSegments = GetAllSegments();
JavaScriptSerializer serializer = new JavaScriptSerializer();
string json = serializer.Serialize(allSegments);
string script = String.Format("<script type="text/javascript">var allSegments={0}</script>", json);
this.ClientScript.RegisterClientScriptBlock(this.GetType(), "clientScript", script, true);
}
}
Сценарият никога не се появява и аз го опитах RegisterStartupScript
но това също не работи ...
В моята HTML страница включих следното в горната част: <%@ Page Language="C#" CodeBehind="Dashboard.aspx.cs" %>
Може ли някой да забележи проблема (те)? Всяка помощ е много ценена!
Отговори:
1 за отговор № 1Въпросът е последният аргумент в RegisterClientScriptBlock
методът е кръстен addScriptTags
и тъй като сте го направили true
, трябва да премахнете маркера на скрипта и да позволите на C # да добавите тези маркери за вас:
int[,] allSegments = GetAllSegments();
JavaScriptSerializer serializer = new JavaScriptSerializer();
string json = serializer.Serialize(allSegments);
string script = String.Format("var allSegments={0};", json);
this.ClientScript.RegisterClientScriptBlock(this.GetType(), "clientScript", script, true);
или просто задайте addScriptTags
да се false
:
int[,] allSegments = GetAllSegments();
JavaScriptSerializer serializer = new JavaScriptSerializer();
string json = serializer.Serialize(allSegments);
string script = String.Format("<script type="text/javascript">var allSegments={0};</script>", json);
this.ClientScript.RegisterClientScriptBlock(this.GetType(), "clientScript", script, false);
Другата малка промяна, която направих, е просто да добавите точка и запетая до края на кода на вашия js.