Как отобразить диалоговое окно подтверждения с С# на клиент и использовать результат

У меня есть общий обработчик, который удаляет файл из местоположения после получения подтверждения от пользователя, чего он действительно хочет.

Мой код:

public class DeleteFilePDF : IHttpHandler {

 public void ProcessRequest (HttpContext context) {
 System.Web.HttpRequest request2 = System.Web.HttpContext.Current.Request;
 string strSessVar2 = request2.QueryString["fileVar"];

 //MessageBox.Show(strSessVar2);
 if (File.Exists(strSessVar2))
 {
 DialogResult dlgRes = MessageBox.Show("Do you really want to delete the file?", "Program Message", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
 if (dlgRes == DialogResult.Yes)
 {
 try
 {
 File.Delete(strSessVar2);
 HttpContext.Current.Response.Redirect("PDFAllFilesDisplay.aspx", false);
 }
 catch (Exception ce)
 {
 }
 }
 }
 }

 public bool IsReusable {
 get {
 return false;
 }
 }
}

Мой код ImageButton:

Мой код ImageButton:

protected void DeleteFile(object sender, EventArgs e)
 {
 string strFile = GridView1.Rows[Convert.ToInt32(((ImageButton)sender).CommandArgument.ToString())].Cells[0].Text;
 string strFolderFile = strDirectory + strFile;
 //MessageBox.Show(strFolderFile);
 Response.Redirect("DeleteFilePDF.ashx?fileVar=" + strFolderFile);
 }

Все работает так, как должно быть в среде отладки, но вне этого я не могу использовать функцию MessageBox.Show(). Как я могу достичь того же, используя диалог подтверждения JQuery/JavaScript?

2 ответа

Получите подтверждение от javascript и нажмите на сервер процесса.

Тогда JS-код

function getConfirmation(){
 return window.confirm("Do you really want to delete the file?");
 }

Для отображения окна подтверждения доступны некоторые хорошие пользовательские интерфейсы. Проверьте диалоговое окно jQuery Modal или загрузочный бот-блок и т.д.


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

function deleteFile {
 //show dialog with jquery or anything similar
 //if yes is selected, then make the handler call using ajax. for example using jquery ajax: 
 $.ajax({ url: [handler url] + [query string], method: "post" });
}

licensed under cc by-sa 3.0 with attribution.