2015-06-09 5 views
0

Это метод My Index, по которому я получаю список данных в webgird. Как я могу написать метод для экспорта этого списка данных при нажатии кнопки?Как экспортировать данные в pdf с помощью MVC?

общественный индекс ActionResult (строка EMAILID) {

 var refEntry = _moneyReport.GetAll().Where(a => a.EmailId == eMailId).ToList(); 
     var credittotal = _moneyReport.GetAll().Where(a => a.EmailId == eMailId && a.PromoValue < 0).Sum(a => a.PromoValue); 
     decimal TotalCredit = Convert.ToDecimal(credittotal * -1); 
     var debittotal = _moneyReport.GetAll().Where(a => a.EmailId == eMailId && a.PromoValue >0).Sum(a => a.PromoValue); 
     decimal TotalDebit = Convert.ToDecimal(debittotal); 

     ViewBag.TotDebit = TotalDebit; 
     ViewBag.TotCredit = TotalCredit; 

     if(TotalCredit>TotalDebit) 
     { 
      decimal FinalTotal = TotalCredit - TotalDebit; 
      ViewBag.Total = FinalTotal; 
     } 

     else 
     { 
      decimal FinalTotal = TotalDebit - TotalCredit; 
      ViewBag.Total = FinalTotal; 
     } 

     return View(refEntry); 

    } 

Это моя страница View, где я вхожу в EMAILID, нагрузка и экспорт код button`enter здесь.

@using (Html.BeginForm()) 
 
    { 
 
    <div class="container-fluid form-row"> 
 
     <div class="col-md-12 no-padding"> 
 
      <div class="col-md-3 no-padding"> 
 
       <input type="text" name="eMailId" id="eMailId" /> 
 
       <span class="highlight"></span> 
 
       <span class="bar"></span> 
 
       <label class="no-left">Enter Email Id <sup class="star">*</sup></label> 
 
      </div> 
 
      <div class="col-md-3"> 
 
       <input type="text" id="gName" name="gName" readonly="readonly" /> 
 
       <span class="highlight"></span> 
 
       <span class="bar"></span> 
 
       <label>Name</label> 
 
      </div> 
 
      <div class="col-md-3"> 
 
       <input type="submit" id="btnLoad" class="btn btn-md pm-create" value="Load" /> 
 
       <input type="submit" id="btnLoad" class="btn btn-md" value="Export To PDF" /> 
 
      </div> 
 
      
 
      <input type="hidden" id="HdnEmail" value='@TempData["MailID"]' /> 
 
     </div> 
 
    </div> 
 
} 
 
    
 
    <div id="report-grid"> 
 
     @{Html.RenderPartial("ImportMoneyReport", Model);} 
 
    </div>

ImPortMoneyReport моя часть страницы, где я ве WebGrid.

ответ

0

Чтобы экспортировать данные модели в PDF, вам придется использовать одну из сторонних библиотек экспорта PDF, например, несколько ниже. Вы найдете примеры примеров на соответствующих сайтах или в Google. Вам нужно будет реализовать код для экспорта pdf и добавить этот файл/поток в Response.OutputStream, установив соответствующий тип контента в действии ImportMoneyReport. Также вам придется вызывать метод ImportMoneyReport на пост/мероприятие, которое вы не можете использовать Html.RenderPartial для экспорта; в противном случае вы можете ввести код экспорта только в Index.

PDF Sharp

iTextSharp

+0

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

+0

Вам понадобится Google для образцов кодов/статей или попробуйте выполнить один из них. http://www.pdfsharp.net/wiki/PDFsharpSamples.ashx – SanjayK

1

Это вы хотите что-то, что это работает и очень проста в использовании. Взгляните на https://github.com/andyhutch77/MvcRazorToPdf

Просто прочитайте документацию.

Для примера кода. Взгляните на это. https://github.com/andyhutch77/MvcRazorToPdf/tree/master/MvcRazorToPdfExample

Если вы столкнулись с некоторыми проблемами, перейдите на их страницу github и перейдите на вкладку «Проблемы», возможно, некоторые из ваших вопросов уже решены.

P.S.

Некоторые из библиотек PDF, таких как Rotativa, требуют выполнения исполняемой программы, которая не будет работать, когда ваше приложение будет развернуто на Azure, поскольку Azure не поддерживает exe-файлы (я думаю, для целей безопасности), иначе вы создадите webjob только для EXE-файла.

Смежные вопросы