新的窗口上的ActionLink的点击打开 [英] New window opens on click of actionLink

查看:498
本文介绍了新的窗口上的ActionLink的点击打开的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个需要量调用从视图页面控制器方法。在方法下面的链接点击的被调用。

I have a requirment to invoke a controller method from the view page. On click of the link below the method should be invoked.

@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);                                 

   }

现在的问题是,当我点击链接,一个空白窗口中打开。我知道这是一些与新目标{=_blank} 。如果我在自己的位置通过我的链接页面变成空白。我在这里过什么让我的网页仍保持原样,并没有新的空白窗口也会出现。

now the problem is when i click on the link, a blank window opens. I know it is something with new { target = "_blank" }. If i pass null in its place my page with link becomes blank. What shall i pass here so the my page remains as it is and no new blank window also appears.

推荐答案

更改您的控制器动作。你得到的页面是空白的,因为你不返回任何东西。做

Change your controller Action. The page that you get is blank because you are not returning anything. Do

 public ActionResult 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); 

    return View();
    }

编辑:
或者,你应该使用AJAX,使您的网页没有重新加载,你不必从你的方法返回任何东西。在这里阅读<一href=\"http://www.asp.net/mvc/overview/older-versions-1/contact-manager/iteration-7-add-ajax-functionality-cs\" rel=\"nofollow\">http://www.asp.net/mvc/overview/older-versions-1/contact-manager/iteration-7-add-ajax-functionality-cs.

这篇关于新的窗口上的ActionLink的点击打开的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆