点击下面的语句
创建的以下链接,会打开一个新的空白浏览器窗口@Html.ActionLink(item.InvoiceNumber, "SendPdfStatement", "Invoice", new { item.InvoiceNumber }, new { target = "_blank" })
我试过
@Html.ActionLink(item.InvoiceNumber, "SendPdfStatement", "Invoice", new { item.InvoiceNumber }, new { target = "_self" })
使原始窗口空白
@Html.ActionLink(item.InvoiceNumber, "SendPdfStatement", "Invoice", new { item.InvoiceNumber }, null)
这也使原始窗口空白
@Html.ActionLink(item.InvoiceNumber, "SendPdfStatement", "Invoice", new { item.InvoiceNumber }
在调用方法中引发异常,因为tem.InvoiceNumber被视为html参数
请建议
public void SendPdfStatement(string InvoiceNumber)
{
InvoiceNumber = InvoiceNumber.Trim();
ObjectParameter[] parameters = new ObjectParameter[1];
parameters[0] = new ObjectParameter("InvoiceNumber", InvoiceNumber);
List<Models.Statement> list = new List<Models.Statement>();
list = _db.ExecuteFunction<Models.Statement>("uspInvoiceStatement", parameters).ToList<Models.Statement>();
var statementResult = _db.ExecuteFunction<Models.Statement>("uspInvoiceStatement", parameters);
Models.Statement statement = statementResult.SingleOrDefault();
pdfStatementController.WriteInTemplate(statement);
}
答案 0 :(得分:0)
由于您的控制器签名是
,您将获得一个空白窗口 public void SendPdfStatement(string InvoiceNumber) { .. }
- 这实际上会为您的观点返回一个空白。
如果您确实想要返回某些内容,请将您的控制器转换为public ActionResult SendPdfStatement(...)
,或者甚至只是字符串..无论您想要返回什么内容。
如果您不想返回任何内容,请使用@Ajax.Actionlink来调用该方法。