我需要在删除文件后向用户显示成功消息。不知道怎么做。请帮忙。
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 :(得分:0)
//我应该在这里返回什么来显示消息?
ViewBag.SuccessMessage = "File was successfully deleted";
return View();
在deleteGeneratedInvoice视图中,将其写入有意义的地方:
<p>@(ViewBag.SuccessMessage ?? "")</p>
答案 1 :(得分:0)
如果您使用此操作删除应用中的数据,则应将其以表单的形式发布到服务器,并指定对您的操作的限制,它只响应HttpPost,否则只要某些内容尝试抓取你的应用程序,你将进入一个粗鲁的觉醒:-P
话虽如此,您对返回的信息有三种选择。您可以返回一个新页面(如果它是一个空白页面,除了“文件已成功删除”消息外,这有点愚蠢)。
或者您可以通过使用Ajax.BeginForm()
Html.BeginForm()
AjaxOptions
的{{1}}内容来定义表单,从而使用Ajax设置表单以进行回发,这为您提供了另外两个选项。从您的删除操作返回部分视图,并在响应完成时(在我眼中最灵活)在动态添加的DIV中显示部分视图,或者您可以从Delete操作返回简单的返回代码,然后根据返回代码在您的页面上显示不同的消息。可以使用BeginForm()
方法的OnSuccess
参数定义处理这些响应的Javascript方法。它们是使用OnError
,OnComplete
和{{1}}属性指定的javascript方法。请注意,它们不是必需的,但为了获得最佳用户体验,您应确保至少指定成功和错误方法。