C# 我想在新页面/窗口上显示PDF?

C# 我想在新页面/窗口上显示PDF?,c#,asp.net,asp.net-mvc,file,C#,Asp.net,Asp.net Mvc,File,我有一个打印方法,显示一个PDF我希望它显示在一个新的窗口 这就是我想要在新页面、选项卡、窗口上显示的内容 我的打印方法: public ActionResult Print(int id) // sales contract Id { ParameterFields paramFields = CreateParameterFields(id); // pass the id of the contract // Save the

我有一个打印方法,显示一个PDF我希望它显示在一个新的窗口

这就是我想要在新页面、选项卡、窗口上显示的内容

我的打印方法:

public ActionResult Print(int id) // sales contract Id
        {
            ParameterFields paramFields = CreateParameterFields(id); // pass the id of the contract
            // Save the report run details
            Guid reportRunId;
            SaveReportRunDetails(paramFields, out reportRunId);               

            try
            {

               <<< Print code >>>
              //Open a new page on this return 
                return File(arrStream, "application/pdf");
            }
            catch (Exception err)
            {
                ViewBag.ErrorMessage = err.Message;
                return RedirectToAction("Edit", new { id = id, error = err.Message }); 
            }
        }
public ActionResult打印(int-id)//销售合同id
{
ParameterFields paramFields=CreateParameterFields(id);//传递合同的id
//保存报告运行详细信息
Guid reportRunId;
SaveReportRunDetails(paramFields,out reportRunId);
尝试
{
>
//打开此报税表的新页面
返回文件(arrStream,“application/pdf”);
}
捕获(异常错误)
{
ViewBag.ErrorMessage=错误消息;
返回RedirectToAction(“编辑”,新的{id=id,error=err.Message});
}
}

这是一个控制器,我不能将客户端脚本和服务器端代码混合在一起,如果我在指向该控制器的链接中有它,那么即使我的错误也会显示在新页面上,这对用户来说是不好的和烦人的


我如何才能实现我的目标?

要在新页面中打开pdf,只需在调用方法中使用
target=“\u blank”

看看你的代码,你似乎没有使用一个帖子,所以一个简单的

<a href="..." target="_blank">text</a> 


应该可以解决您的问题

这是一个控制器,我不能将客户端脚本与服务器端代码混合使用,如果在指向该控制器的链接中有它,那么即使我的错误也会显示在新页面上,这对用户来说既不好又烦人。最好在问题中解释清楚,而不是在一切都正确的情况下强制保存对话框,但我认为你不能强制这样做。我相信这只取决于客户端浏览器的配置我有验证,所以我已经只有在一切都正确时才保存。但不能使用“打印时打开”窗口,因为它运行“保存”,并且您必须能够保存并保持在同一页上。唯一干净的地方放在我的控制器里,但我找不到地方来做这个…:|也许您的操作方法应该返回一个FileStreamResult?请解释这将做什么?请
<a href="..." target="_blank">text</a>