Estoy trabajando en la aplicación web ASP.NET AJAX.
Como parte del requisito, debo mostrar un mensaje al usuario final con la ubicación del archivo cargado. Todo está bien, pero el mensaje de alerta nunca muestra los símbolos " / " en la ruta.
Para la ruta: \\shrestasoft\intranet\CorrectionReports\ReportsWithAccount\CorrectionReportWithAccount-Dec-22-2021-12-31-36-PM.xlsx
A continuación se muestra cómo se muestra mi cuadro de diálogo de alerta:
\shrestasoftintranetCorrectionReportsReportsWithAccountCorrectionReportWithAccount-Dec-22-2021-12-31-36-PM.xlsxHe escrito el siguiente código:
public static void ShowAlertWithFileLocation(object sender, string message) { message = "alert('" + message + "');"; ScriptManager.RegisterClientScriptBlock((sender as Control), typeof(ScriptManager), "alert", message, true); } Intenté usar el método HtmlUtility.HtmlEncode() , pero eso no funcionó para mí. ¿Alguien puede sugerir cómo puedo obtener el nombre de archivo apropiado con la ruta?
El \ se considera un coche de escape. Pero en lugar de ' use ` y String.raw
por ejemplo, esto:
message = "alert(String.raw`" + message + "`);";tenga cuidado - no hay () para String.raw - y usted usa ' y no '
Entonces, usas el ` que quedó en la tecla 1 en la mayoría de los teclados.
p.ej:
var s = String.raw`power\weight` alert(s)La respuesta es muy simple, pero me llevó más tiempo llegar a esta conclusión. Solo necesitamos usar el new JavaScriptSerializer().Serialize(message); método.
A continuación se muestra mi código modificado:
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); }