Элементы управления ASP.NET не рендеринг во время выполнения (являются нулевыми) после вызова AJAXC#

Место общения программистов C#
Ответить
Anonymous
 Элементы управления ASP.NET не рендеринг во время выполнения (являются нулевыми) после вызова AJAX

Сообщение Anonymous »

У меня есть следующая панель ASPX: < /p>

Код: Выделить всё
















< /code>
и следующий код позади: < /p>
[System.Web.Services.WebMethod]
public static void GameEnd(string timeElapsed, string starsCollected, string deathCount, bool victory)
{
Play playPage = new Play();
playPage.ShowPanel(int.Parse(timeElapsed), int.Parse(starsCollected), int.Parse(deathCount), victory);
}
private void ShowPanel(int time, int stars, int deaths, bool victory)
{
Victory.Text = victory ? "VICTORY" : "DEFEAT";
DeathCounter.Text = "x" + deaths;
StarCounter.Text = "x" + stars;
TimeElapsed.Text = SecToMin(time);
EndPanel.Visible = true;
Session["game"] = new Game(PlayService.countGames(((Map)Session["map"]).mapID), (User)Session["user"], DateTime.Today, time, stars, deaths, victory);
}
< /code>
, который вызывается через следующий фрагмент Ajax (с помощью jQuery) в моем JS: < /p>
$.ajax({
type: "POST",
url: "Play.aspx/GameEnd",
data: JSON.stringify({ timeElapsed: Math.round(gameRuntime), starsCollected: score, deathCount: deaths, victory: win }),
contentType: "application/json; charset=utf-8",
dataType: "json"
});
< /code>
У меня нет ошибок в компиляции, но во время выполнения я получаю NullReferenceException, для всех элементов управления панели и самой панели. По крайней мере, нет исключения. < /P>
if (Victory == null) Victory = new Label(); Victory.CssClass = "overlay";
if (DeathCounter == null) DeathCounter = new Label(); DeathCounter.CssClass = "overlay";
if (StarCounter == null) StarCounter = new Label(); StarCounter.CssClass = "overlay";
if (TimeElapsed == null) TimeElapsed = new Label(); TimeElapsed.CssClass = "overlay";
if (EndPanel == null)
{
EndPanel = new Panel();
EndPanel.CssClass = "container";
EndPanel.Controls.Add(Victory); EndPanel.Controls.Add(DeathCounter); EndPanel.Controls.Add(StarCounter); EndPanel.Controls.Add(TimeElapsed);
}
Я не могу получить, почему они вообще не являются нулевыми, невозможно обойти или решать проблему ...

Подробнее здесь: https://stackoverflow.com/questions/779 ... -ajax-call
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»