首先运行FileResult下载文件,然后运行RedirectToAction



这将在按钮被按下时发送电子邮件。然而,我试图调用filerresult, SaveDocument,在重定向回按钮页面之前下载文件。

为了测试,我现在使用硬编码文件下载。我可以使用测试按钮运行SaveDocument()结果。我不能发送电子邮件,运行保存文档操作,然后重定向。

[HttpGet]
public ActionResult send(int thisbatch, string listofpositives)
{
    MailMessage mail = new MailMessage();
    SmtpClient smtpServer = new SmtpClient("smtperServer");
    smtpServer.Port = 25; // Gmail works on this port
    smtpServer.EnableSsl = false;
    mail.From = new MailAddress("xxxe@xxx.com");
    mail.To.Add("xxxe@xxx.com");
    mail.Subject = "Batch Closed";
    mail.Body="some info stuff here";
    smtpServer.Send(mail);
    SaveDocument();
    return RedirectToAction("AddColiform");
}
//THIS WORKS BY ITSELF CALLED FROM A BUTTON
    public FileResult SaveDocument()
    {
        string filePath = Server.MapPath("~/XML_positives/Test1.xml");
        string contentType = "text/xml";
        return File(filePath, contentType, "Test1.xml");
    }

好吧,没有找到解决方案(到目前为止)下载文件和RedirectToAction回到初始页面在同一个ActionResult。如果有人能想出更好的答案,我就把这个去掉。

所以基于字符串"listofpositive"的内容,我调用一个新的视图"Has positive"有2个按钮:一个调用FileResult动作和一个重定向回到一切开始的地方(这是需要的)。比弹出文件另存为对话框然后自动移动要笨拙得多。但我需要有所建树,然后继续生活。我为我的用户感到遗憾。哦。

以下是我发送电子邮件并返回所需视图后的代码:

if (listofpositives == "")
{
    return RedirectToAction("AddColiform");
}
else
{
    return RedirectToAction("HasPositives",new { thisbatch=thisbatch, listofpositives=listofpositives});
}

下面是整个额外视图的代码:

@{
    ViewBag.Title ="HasPositives" ; 
}
<h2>HasPositives</h2>

<p>Batch: @ViewData["batchid"] </p>
<p>Postives: @ViewData["listofpositives"]</p>
<br /><br />
Process your XML file using XMLSampling<br /><br /><br />
&nbsp;&nbsp;&nbsp;&nbsp;
<button onclick="location.href='@Url.Action("SaveDocument", "Home")';return false;">Download Positive XML File</button>
&nbsp;&nbsp;&nbsp;&nbsp;
<button onclick="location.href='@Url.Action("AddColiform", "Home")';return false;">Done</button>

相关内容

  • 没有找到相关文章

最新更新