Предупреждение не работает, что в этом плохого

#c# #.net #asp.net #javascript

#c# #.net #asp.net #javascript

Вопрос:

Я пишу следующее в alert, но оно не отображает окно предупреждения, что в этом не так

 protected void Timer1_Tick(object sender, EventArgs e)
{
    string str = string.Empty;
    str = "Total Count: '"   click   "'";

    Response.Write("<Script>alert('"   str   "')</script>");
    click = 0;
}
  

Ответ №1:

Вы должны избегать своих апостроф в следующей строке:

Изменить:

 str = "Total Count: '"   click   "'";
  

Для:

 str = "Total Count: '"   click   "'";
  

Комментарии:

1. да, потому что из-за вашей конкатенации строк вы бы получили «alert (‘Общее количество»‘)»

2. Это то, что OP написал в вопросе. Лично я (и, похоже, большинство всех остальных) не стал бы использовать вложенные кавычки, но этот выбор остается за оператором.

Ответ №2:

У вас есть вложенные одинарные кавычки, попробуйте без:

     str = "Total Count: "   click;
    Response.Write("<Script>alert('"   str   "')</script>");
  

Ответ №3:

Вы забыли символы ‘@’ и ‘;’ в функции оповещения:

Замените эту строку:

 Response.Write("<Script>alert('"   str   "')</script>");
  

с этим:

 Response.Write(@"<script type='text/javascript'>alert('"   str   "');</script>");
  

Ответ №4:

Поскольку сигнатурой вашего метода является timer1_Tick, я предполагаю, что вы используете ScriptManager. Правильный способ внедрить javascript с помощью ScriptManager — это:

 ScriptManager.RegisterClientScriptBlock(this, typeof(this), "alert", "alert('"   str   "');", true)