【发布时间】:2011-12-13 20:02:41
【问题描述】:
我需要从视图页面调用控制器方法。单击下面的链接应调用该方法。
@Html.ActionLink(item.InvoiceNumber, "SendPdfStatement", "Invoice",
new { item.InvoiceNumber }, new { target = "_blank" })
方法签名为:
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);
}
现在的问题是当我单击链接时,会打开一个空白窗口。我知道这与new { target = "_blank" } 有关。如果我在其位置传递null,我的链接页面将变为空白。我应该在这里传递什么,以便我的页面保持原样,并且不会出现新的空白窗口。
【问题讨论】:
-
问题出在您的控制器方法中,而不是在此 html 帮助程序调用中。您的方法似乎返回一个空结果。您应该向我们展示缺少的代码。顺便说一句,您的方法应该在
InvoiceController类中调用SendPdfStatement。你确定你检查的是正确的吗? -
该方法仅在 InvoiceController 中调用 SendPdfStatement。已经放了方法的详细代码
标签: asp.net-mvc-3 c#-4.0 model-view-controller asp.net-mvc-5 asp.net-4.0