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

2 回答 2

0

//我应该在这里返回什么来显示消息?

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

在您的 deleteGeneratedInvoice 视图中,将以下内容写在有意义的地方:

<p>@(ViewBag.SuccessMessage ?? "")</p>
于 2012-01-26T20:40:11.013 回答
0

好吧,如果您要使用此操作删除应用程序中的数据,则应该将其以表单的形式发布到服务器,并指定对您的操作的限制,使其仅响应 HttpPost,否则一旦有东西试图爬取您的应用程序,您'将是一个粗鲁的觉醒:-P

话虽如此,对于返回的信息,您有三个选择。您可以返回一个新页面(如果它是一个空白页面,除了“文件已成功删除”消息之外,这有点愚蠢)。

或者,您可以使用 Ajax 将表单设置为回发,方法是使用 y Ajax.BeginForm()insead 定义表单,Html.BeginForm()其中提供了另外两个选项。从您的删除操作返回一个部分视图,并在响应完成时将部分视图显示在动态添加的 DIV 中(在我看来是最灵活的),或者您可以从您的删除操作返回一个简单的返回代码,然后取决于那个返回代码在您的页面上显示不同的消息。AjaxOptions可以使用方法的参数来定义处理这些响应的 Javascript 方法BeginForm()。它们是使用OnSuccess,OnErrorOnComplete特性。请注意,它们不是必需的,但为了获得最佳用户体验,您应该确保至少指定 Success 和 Error 的方法。

于 2012-01-26T21:04:04.930 回答