/ / Сценарій не вставлений на завантаження сторінки - c #, javascript, html, asp.net, json

Сценарій не вставлено на завантаження сторінки - c #, javascript, html, asp.net, json

Я працюю над макетом класу, де мені потрібно підробити отримання даних із бази даних та надсилання їх у межах 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-коду.