ranio Ответов: 2

Как объединить сообщения в сообщение при использовании client.registerstartupscript в ASP.NET с помощью C#?


Я хочу объединить сообщения в сообщение во время использования ClientScript.RegisterStartupScript в asp.net с помощью c#. Во время конкатенации никакое сообщение не приходит, в то время как то же самое работает над добавлением того же самого.

Что я уже пробовал:

Мой код выглядит следующим образом:
// concatenating a message in <pre>ClientScript.RegisterStartupScript
string strTest += "\r\nInvalid OIC Type for Loans!";
ClientScript.RegisterStartupScript(typeof(Page), "MessagePopUp", "alert('Request saved successfully and send to Maker for verification" + "(Test - " + strTest + "); window.location.href = 'Test_Initiation.aspx" + queryString + "'; ", true);

// Without concatenating a message in ClientScript.RegisterStartupScript
ClientScript.RegisterStartupScript(typeof(Page), "MessagePopUp", "alert('Request saved successfully and send to Maker for verification'); window.location.href = 'DDS300_Initiation.aspx" + queryString + "'; ", true);

2 Ответов

Рейтинг:
1

Richard Deeming

Помимо отсутствующей одинарной кавычки, ваше сообщение должно быть правильно закодировано. Вы в настоящее время выводите:

alert('Request saved successfully and send to Maker for verification(Test - 
Invalid OIC Type for Loans!); window.location.href = 'Test_Initiation.aspx?...';
что не сработает, потому что обычные строки JavaScript не могут содержать неэкранированные разрывы строк.

Вы должны выводить данные:
alert('Request saved successfully and send to Maker for verification(Test - \r\nInvalid OIC Type for Loans!'); window.location.href = 'Test_Initiation.aspx?...';
Воспользуйся HttpUtility.JavaScriptStringEncode чтобы закодировать ваше сообщение перед его добавлением. Вероятно, вам следует закодировать queryString а также просто на всякий случай.
ClientScript.RegisterStartupScript(typeof(Page), "MessagePopUp", "alert('Request saved successfully and send to Maker for verification" + "(Test - " + HttpUtility.JavaScriptStringEncode(strTest) + "'); window.location.href = 'Test_Initiation.aspx" + HttpUtility.JavaScriptStringEncode(queryString) + "'; ", true);
Я думаю, что это, вероятно, было бы чище использовать string.Format, чтобы построить сценарий:
ClientScript.RegisterStartupScript(typeof(Page), "MessagePopUp", string.Format("alert('Request saved successfully and send to Maker for verification(Test - {0}'); window.location.href = 'Test_Initiation.aspx{1}';", HttpUtility.JavaScriptStringEncode(strTest), HttpUtility.JavaScriptStringEncode(queryString)), true);
Это должно облегчить обнаружение любых синтаксических ошибок в вашем скрипте.

HttpUtility.Метод JavaScriptStringEncode (System.Web) | Microsoft Docs[^]


Maciej Los

5ed!

Рейтинг:
0

phil.o

Кажется, в вашем тексте есть синтаксическая ошибка. alert вызов, плюс неправильное использование двойных кавычек вместо одинарной кавычки. Попробуй

ClientScript.RegisterStartupScript(typeof(Page), "MessagePopUp", "alert('Request saved successfully and send to Maker for verification" + "(Test - " + strTest + ")'); window.location.href='/KB/answers/Test_Initiation.aspx" + queryString + "'; ", true);
вместо.


Maciej Los

5ed!