2012-01-26 151 views
1

我需要在刪除文件後向用戶顯示成功消息。不知道該怎麼做。請幫忙。刪除後顯示成功消息

public ActionResult deleteGeneratedInvoice(string invoiceNumber) 
    { 
     try 
     { 
      string fileName = invoiceNumber.Trim() + ".pdf"; 
      string filePath = HostingEnvironment.MapPath("~/Content/reports/"); 
      string fullFilePath = filePath + fileName; 
      System.IO.File.Delete(fullFilePath); 

      //What shall i return here to display message? 
      return 
     } 
     catch (Exception e) 
     { 
      InvoiceSearchTool.Models.udtExceptionTable exception = new udtExceptionTable(); 
      exception.MethodName = "deleteGeneratedInvoice"; 
      exception.Exception = e.ToString(); 
      exception.Date = DateTime.Now; 
      DYNAMICS_EXTEntities db = new DYNAMICS_EXTEntities(); 
      db.AddToudtExceptionTables(exception); 
      db.SaveChanges(); 
      //return View ("Error"); 
     } 
    } 
+0

請解釋你對我的答案downvote,併成爲一個公平的人,並將其刪除。畢竟,我用我的時間試圖幫助你,並提出了一個有效的答案.. –

+0

downvoted,因爲它不同於我問,試圖刪除它,但不能因爲它被鎖定...請不要被冒犯,如果僅僅是聲譽問題,我會接受你的答案。 – 14578446

回答

0

//我應該在這裏返回以顯示消息?

ViewBag.SuccessMessage = "File was successfully deleted"; 
return View(); 

在你deleteGeneratedInvoice看來,寫這個地方是有道理的:

<p>@(ViewBag.SuccessMessage ?? "")</p> 
+0

沒有任何視圖在這裏返回,這是我的顯示確認消息,因爲保持返回類型void顯示一個空白窗口。 – 14578446

+0

你可以這樣做:「返回內容(」消息「);」但通過返回null你永遠不會向任何人展示任何東西.. –

+0

請解釋downvote ..我回答了這個問題。如果它不符合你的需求,不是我的錯誤。 –

0

好吧,如果你在你的應用程序中使用這個動作刪除數據,你應該有它發佈到服務器中形式和指定一個限制,你的行動,它只響應HttpPost,否則只要有東西試圖抓取你的應用程序,你會在一個粗魯的覺醒:-P

這就是說,你有三個選擇返回的信息。你可以返回一個新的頁面(如果它是一個空白頁面,除了「文件已成功刪除」消息),這是一種愚蠢的行爲。

或者您可以設置您的表單以使用Ajax回發,方法是使用y Ajax.BeginForm() insend Html.BeginForm()定義您的表單,從而爲您提供另外兩個選項。要麼從你的刪除操作中返回一個局部視圖,並且在響應完成時(在我眼中最靈活的)讓局部視圖顯示在動態添加的DIV中,或者你可以從你的刪除操作中返回一個簡單的返回碼,然後根據返回碼會在您的網頁上顯示不同的訊息。可以使用BeginForm()方法的AjaxOptions參數定義處理這些響應的Javascript方法。它們是使用OnSuccess,OnErrorOnComplete屬性指定的JavaScript方法。請注意,它們不是必需的,但爲了獲得最佳用戶體驗,您應確保至少指定成功和錯誤方法。