Ajax Call из базовой страницы HTML для нижнего колонтитула в Rotativa - PullRequest
0 голосов
/ 12 июня 2018

Могу ли я сделать Ajax Call для моего контроллера и метода Action, чтобы получить некоторые данные со страницы HTML вместо страницы CSHTML.У меня точно такой же контент, но вместо cshtml я хочу использовать HTML-страницу.

Если да, пожалуйста, дайте мне пример кода.

РЕДАКТИРОВАТЬ ФактическийПроблема была в другом, и я прошу прощения за неясность.

Фактическая проблема заключается в том, что я пытаюсь сгенерировать PDF с использованием Rotativa.И я хотел добавить нижний колонтитул к нему, и он содержит некоторую динамическую часть.

            string header = System.IO.Path.Combine(HostingEnvironment.ContentRootPath, "Views/Home/header2.html");
        string footer = System.IO.Path.Combine(HostingEnvironment.ContentRootPath, "Views/Home/Footer.html");
        string customSwitches = string.Format("--header-html  \"{0}\" " +
                      //"--header-spacing \"0\" " +
                      "--page-offset 0 --header-right \"Page: [page] of [toPage]\" " +
                      "--footer-html \"{1}\" " +
                      "--footer-spacing \"10\" " +
                      //"--footer-font-size \"10\" " +
                      "--header-font-size \"10\" ", header, footer);
var pdfResult =  new ActionAsPdf("CreatePDF1", headerData)
        {
            FileName = "quotation.pdf",
            PageOrientation = Orientation.Portrait,
            PageSize = Size.A4,
            CustomSwitches = customSwitches
        };

Ниже приводится мой Footer.html

<!DOCTYPE html>

    <html>
    <head>
<meta charset="utf-8" />
<title></title>
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" />
<link rel="stylesheet" href="~/css/site.css" />
<link rel="icon" href="~/Assets/Images/logo.png" />
<link href="~/css/cupertino/jquery-ui.css" rel="stylesheet" />
<link href="~/css/cupertino/theme.css" rel="stylesheet" />

<script src="~/js/jquery-2.1.3.js"></script>
<script src="~/js/jquery-ui-1.11.3.js" type="text/javascript"></script>

    </head>

    <body>
        <div id='divContent'></div>
    </body>

    </html>

    <script>
            $.ajax({
            url: "/Quotation/ReturnFooterData",
                type: 'get',
                async: false,
                success: function (data) {
                document.getElementById("divContent").innerHTML = data;
            },
                error: function (data) {
                document.getElementById("divContent").innerHTML = "error";

                }
            });
    </script>

Эти данные детали должны присутствовать в PDFв нижнем колонтитуле.Здесь вызов ajax, который я делаю, не затрагивает метод действия.

Это была моя настоящая проблема, и мои извинения за то, что я не предоставил точную информацию о проблеме.

1 Ответ

0 голосов
/ 12 июня 2018

Да, что-то вроде

<script type="text/javascript">
    $(document).ready(function()
    {
         $.ajax({
             contentType: "application/json",
             dataType: 'json',
             type: 'POST',
             url: '/Shop/FilterRinglet',
             data: data,
             success: function (result) {
                 //alert("success");
             }
        });
    });
</script>

внутри вашего html.Не забудьте загрузить jquery в ваш головной раздел:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...