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