1

我想在新页面上显示我的 ActionResult 的返回?

下面的这个电话是我唯一无法在新页面上显示的电话?

谁能告诉我要添加什么才能做到这一点,我已经使用 Window.open 和按钮,但现在我有一个 RedirectToAction。

这是我想在新页面/窗口上显示的调用:

return RedirectToAction("Print", new { id = contractInstance.SalesContractId });

我已经使用此代码执行此操作的按钮:

window.open('Contract/Print/' + $(this).attr('id'));

Print actionResult 如下所示:

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 would also be a good answer :)!!!!!!!
                return File(arrStream, "application/pdf");
            }
            catch (Exception err)
            {
                ViewBag.ErrorMessage = err.Message;
                return RedirectToAction("Edit", new { id = id, error = err.Message }); 
            }
        }
4

2 回答 2

2

您如何从视图中执行打印操作?它只是一个超链接@Html.ActionLink("Print", "Print")吗?

.NET 无法告诉您的浏览器从服务器打开一个新窗口,这是通过 HTML 标记或 javascript 调用(例如 Window.Open)在客户端完成的。在新页面中打开链接的最简单方法是在 HTML 上指定目标属性。使用 ActionLink 帮助器,您的语法将是:

@Html.ActionLink("Print", "Print", "Contract", new{id = Model.SalesContractId}, new {target = "_blank"})

这应该呈现如下内容:

<a href="/Contract/Print/4" target="_blank">Print</a>
于 2012-06-14T14:09:53.797 回答
-1

您可以尝试在控制器操作中执行以下操作

Response.Write("<script type='text/javascript'>
                    window.open('YourViewName', '_blank');
                </script>");

谢谢苏布拉塔姆

于 2014-09-22T11:23:25.253 回答