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
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);
}