Home > OS >  Alert dialog never shows escape characters in asp.net ajax
Alert dialog never shows escape characters in asp.net ajax

Time:12-23

I'm working on ASP.NET AJAX Web Application.

As part of the requirement, I need to show message to the end user with the uploaded file location. Everything is fine, but the alert message never shows "/" symbols in the path.

For the path: \\shrestasoft\intranet\CorrectionReports\ReportsWithAccount\CorrectionReportWithAccount-Dec-22-2021-12-31-36-PM.xlsx

Below is how my alert dialog is displaying:

\shrestasoftintranetCorrectionReportsReportsWithAccountCorrectionReportWithAccount-Dec-22-2021-12-31-36-PM.xlsx

enter image description here

I've written the below code:

    public static void ShowAlertWithFileLocation(object sender, string message)
    {
        message = "alert('"   message   "');";
        ScriptManager.RegisterClientScriptBlock((sender as Control), typeof(ScriptManager), "alert", message, true);
    }

I've tried to use HtmlUtility.HtmlEncode() method, but that did not work for me. Can someone suggest how can I get the appropriate filename with path?

CodePudding user response:

The \ is considered a escape car. But in place of ' use ` and String.raw

eg this:

 message = "alert(String.raw`"   message   "`);";

note carefull - there is no () for String.raw - and you use ` and not '

So, you use the ` that left to 1 key on most keyboards.

eg:

 var s = String.raw`power\weight`
 alert(s)

CodePudding user response:

The answer is very simple, but took more time for me to arrive to this conclusion. We just need to use new JavaScriptSerializer().Serialize(message); method.

Below is my modified code:

    public static void ShowAlertWithFileLocation(object sender, string message)
    {
        message = new JavaScriptSerializer().Serialize(message);
        message = "alert('"   message   "');";
        ScriptManager.RegisterClientScriptBlock((sender as Control), typeof(ScriptManager), "alert", message, true);
    }
  • Related