删除后显示成功消息

时间:2012-01-26 20:37:08

标签: c# asp.net-mvc asp.net-mvc-3 .net-4.0 asp.net-mvc-3-areas

我需要在删除文件后向用户显示成功消息。不知道怎么做。请帮忙。

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

2 个答案:

答案 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方法。它们是使用OnErrorOnComplete和{{1}}属性指定的javascript方法。请注意,它们不是必需的,但为了获得最佳用户体验,您应确保至少指定成功和错误方法。