私よりも知的な人からの提案が必要です。私は基本的に、3つのラジオボタン(電子メール、PDF、なし)とはいといいえ送信ボタンの2つのものを持っているモーダルを持っています。 ラジオボタンを押すと、ユーザーがコントローラ内で電子メールまたはpdfを押したかどうかを知るために隠れ変数を適切にフラグを立てます。ユーザーが保存するために「はい」を押すと(ハッピー・パス)、コントローラーが呼び出されます。 このコントローラーは変更を保存し、別のページにリダイレクトします。今私はこのコントローラに追加し、pdfをダウンロードさせたいと思う。私は私のDownloadPDFアクションを呼び出すことでこれをやっています。ラジオボタンをクリックしてリダイレクトしてPDFをダウンロードしてください
public ActionResult Main(string id)
//code for doing all the save and other stuff
{
if (viewModel.Email)
{
SendTestingEmail(viewModel.ConsumerEncryptedID);
}
else if(viewModel.PDF)
{
DownloadWelcomePDF()
}
return RedirectToAction("ConsumerIndex", "Consumer")
}
今public ActionResult DownloadWelcomePDF(string id)
{
var htmlWelcomeEmail = db.getHtmlBody(id.DecryptID());
var converter = new ConvertToPDF();
var file = converter.ConvertHTMLStringToPDF(htmlWelcomeEmail.EmailBody);
var fileStreamResult = new FileStreamResult(file, "application/pdf") { FileDownloadName = string.Format("Welcome{0}{1}_{2}.pdf", htmlWelcomeEmail.ConsumerFirstName, htmlWelcomeEmail.ConsumerLastName, DateTime.Now.ToString("yyyyMMdd")) };
return fileStreamResult;
}
これも私が、同時にこれらの2つのこと(別のページにリダイレクトし、ダウンロードする)の両方を行うことができないPDFコンテンツを返しますので、。 私は長い間インターネットを検索してきました。 これは本質的にダウンロードとリダイレクトですが、ダウンロードは特定の条件(ラジオのプレス)でのみ行われる必要があり、ページは常にリダイレクトされます。