【问题标题】:Editable cshtml View Page save as PDF可编辑的 cshtml 查看页面另存为 PDF
【发布时间】:2015-11-02 10:17:08
【问题描述】:

我正在尝试创建一个包含

的 Web 应用程序
  1. 可编辑的cshtml视图页面

然后

  1. 点击按钮后,将编辑后的内容保存为 PDF

所以这是整个cshtml视图页面,

        @model IEnumerable<int>

        @{
            ViewBag.Title = "Create Template";
        }
        <!DOCTYPE html>
        <html>
        <head>
            <title>Create a Template</title>
        </head>
        <body>
                    <div id='template'>
                       <h1 contentEditable='True'>Product Name</h1>
                        <div >
                          <h2 contentEditable='True'>Product Description</h2>       
                          <p contentEditable='True'>London is the capital city of England.</p>
                       </div>
                   </div>

          <button id="btn_sumbit" type="button" class="btn btn-danger submit">Save as PDF</button>

        </body>
        </html>

        @section Scripts {

            @Scripts.Render("~/bundles/jqueryval")
            @Scripts.Render("~/bundles/jqueryui")

            <script type="text/javascript">

                $('#btn_sumbit').on('click', function () {

                    var div_value = document.getElementById('template').innerHTML;

                    RazorPDF.PdfResult(div_value, "PDF");
                });

            </script>

        }

我正在使用RazorPDF 来执行此任务,但是一旦我单击此按钮,它就不会保存为 PDF

我可以编辑这个cshtml视图页面,我想把最后编辑的内容保存为pdf(动态视图)

【问题讨论】:

    标签: javascript c# jquery asp.net-mvc razorpdf


    【解决方案1】:

    我认为你做错了。 “RazorPDF.PdfResult(...)”这一行属于控制器而不是视图。

    观看此视频:http://nyveldt.com/blog/post/Introducing-RazorPDF 它应该让您更清楚地了解 RazorPDF 中的工作原理。

    编辑:

    只需创建一个控制器方法,它会根据参数生成 PDF 视图。

    public ActionResult Pdf(string name, string description) {
        var product = new Product();
        product.Name = name;
        product.Description = description;
    
        var pdfResult = new PdfResult(product, "Pdf");
    
        return pdfResult;
    }
    

    当然,您需要创建一个包含信息的 Product-Class。

    在你的 Javascript 部分你可以写:

    location.href = @Url.Action("Pdf", "Controllername") + "?name=" + name + "&description=" + description;
    

    这有望生成一个您可以在 Javascript 中关注的链接。 name 和 description 是保存用户输入信息的 Javascript 变量。

    你明白吗?我的方法是根据您的可编辑视图的信息在不同的视图(如该视频中)生成 PDF 内容。

    告诉我它是否有效。 ;-)

    【讨论】:

    • 那么如何在脚本中触发呢?
    • 那么如何在脚本中触发转换为PDF的方法呢?
    • 对控制器方法使用 Ajax-Call。尝试重新考虑您的设计。从 Javascript 调用该视频中的 PDF 方法。提供告诉它 PDF 应该是什么样子的 PDF-Method 参数。最重要的是:在问更多问题之前先谷歌思考。 SO 的目标不是取代 google。
    • 但是在那个视频中,他从控制器方法生成结果,然后他将这些细节提取到 PDF,在我的上下文中,我可以编辑这个 cshtml 视图页面,我想将最终编辑的内容保存为 pdf (这是动态视图)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多