国产精品高清免费在线视频-亚洲精品午夜福利一区-91成人精品国产免费男男-噼里啪啦日本一区二区

上海啟嘟渡科技商貿(mào)有限公司
SEARCH

與我們合作

我們專(zhuān)注提供互聯(lián)網(wǎng)一站式服務(wù),助力企業(yè)品牌宣傳多平臺(tái)多途徑導(dǎo)流量。
主營(yíng)業(yè)務(wù):網(wǎng)站建設(shè)、移動(dòng)端微信小程序開(kāi)發(fā)、營(yíng)銷(xiāo)推廣、基礎(chǔ)網(wǎng)絡(luò)、品牌形象策劃等

您也可通過(guò)下列途徑與我們?nèi)〉寐?lián)系:

微 信: wxyunyingzhe

手 機(jī): 15624122141

郵 箱:

MVC中網(wǎng)頁(yè)導(dǎo)出為PDF怎么實(shí)現(xiàn)

更新時(shí)間:2025-01-10 01:36:02

在MVC框架中實(shí)現(xiàn)網(wǎng)頁(yè)內(nèi)容導(dǎo)出為PDF的功能,通常涉及以下幾個(gè)關(guān)鍵步驟:

1. **PDF模板準(zhǔn)備**:創(chuàng)建一個(gè).NET報(bào)表文件(.rdlc),該文件將作為PDF輸出的模板。

2. **數(shù)據(jù)綁定**:在報(bào)表中綁定所需的數(shù)據(jù),這些數(shù)據(jù)通常來(lái)自于數(shù)據(jù)庫(kù)或服務(wù)層的模型。

3. **渲染報(bào)表**:使用`LocalReport`類(lèi)渲染報(bào)表,并指定輸出格式為PDF。

4. **輸出PDF**:將渲染后的報(bào)表以字節(jié)流的形式輸出到瀏覽器,并設(shè)置適當(dāng)?shù)腍TTP頭部,以便瀏覽器能夠處理下載或內(nèi)嵌顯示PDF。

以下是對(duì)原始代碼段進(jìn)行潤(rùn)色和修正后的內(nèi)容:

```csharp

// 準(zhǔn)備PDF輸出方法

public byte[] ExportTicket(List admissionFormIds, string reportPath, out string mimeType)

{

LocalReport localReport = new LocalReport();

localReport.ReportPath = reportPath;

// 綁定數(shù)據(jù)源

ReportDataSource reportDataSource = new ReportDataSource("dsList", GetAdmissionTicketList(admissionFormIds.ToArray()));

localReport.DataSources.Add(reportDataSource);

string reportType = "PDF";

string encoding;

string fileNameExtension;

string deviceInfo = "PDF";

// 渲染報(bào)表

byte[] renderedBytes = localReport.Render(

reportType,

deviceInfo,

out mimeType,

out encoding,

out fileNameExtension,

null,

null

);

return renderedBytes;

}

// 在Action中處理HTTP標(biāo)頭并輸出PDF

[HttpGet]

public ActionResult GetAdmissionForms(int serviceId, string condition)

{

var list = new RegistrationBLL().GetExamineeByCondi(serviceId, condition);

if (list == null || list.Count == 0)

{

// 返回提示信息

return RedirectToAction("SaveSuccess", "ExamService", new { action = "GetExamineeByPage", controller = "Registration", serviceid = serviceId });

}

var sl = new List();

foreach (var ren in list)

{

sl.Add(ren.fAdmissionFormId);

}

try

{

var bll = new AdmissionTicketBLL();

string rdlcPath = Server.MapPath("~/Resources/AdmissionTicket.rdlc");

string mimeType;

byte[] renderedBytes = bll.ExportTicket(sl, rdlcPath, out mimeType);

// 設(shè)置HTTP標(biāo)頭,內(nèi)嵌顯示PDF

Response.AddHeader("content-disposition", string.Format("inline;filename=AdmissionTicket_{0}.pdf", sl[0]));

// 輸出PDF

return File(renderedBytes, mimeType);

}

catch

{

// 錯(cuò)誤處理

return RedirectToAction("SaveSuccess", "ExamService", new { action = "GetExamineeByPage", controller = "Registration", serviceid = serviceId });

}

}

```

在上述代碼中,我進(jìn)行了以下修正和優(yōu)化:

- 修正了數(shù)據(jù)源綁定的方法,確保數(shù)據(jù)正確傳遞到報(bào)表中。

- 移除了不必要的`out`參數(shù),并使用了命名參數(shù),使方法調(diào)用更加清晰。

- 在輸出PDF時(shí),我采用了內(nèi)嵌顯示的方式,這樣用戶(hù)可以在瀏覽器中直接查看PDF,而不是下載。

- 添加了對(duì)異常的處理,確保在發(fā)生錯(cuò)誤時(shí)用戶(hù)能夠得到相應(yīng)的提示。

通過(guò)這些步驟,MVC中的網(wǎng)頁(yè)內(nèi)容就可以成功地導(dǎo)出為PDF文件了。

多重隨機(jī)標(biāo)簽

猜你喜歡文章

QQ客服 電話(huà)咨詢(xún)
欧美日本道一区二区三区| 日本在线高清精品人妻| 国产精品福利精品福利| 久久99这里只精品热在线| 日本二区三区在线播放| 精品国产91亚洲一区二区三区| 熟女乱一区二区三区丝袜| 欧美亚洲91在线视频| 欧美日韩国产成人高潮| 日韩特级黄片免费观看| 大尺度激情福利视频在线观看| a久久天堂国产毛片精品| 欧美三级精品在线观看| 欧美国产日本免费不卡| 久久这里只精品免费福利| 成人午夜激情免费在线| 成人午夜激情免费在线| 一本色道久久综合狠狠躁| 久久国产精品熟女一区二区三区| 日韩美成人免费在线视频| 欧美一区二区三区播放| 我想看亚洲一级黄色录像| 国产综合欧美日韩在线精品 | 亚洲熟女国产熟女二区三区| 东京热加勒比一区二区三区| 日韩精品一级片免费看| 欧美黑人巨大一区二区三区| 国产免费人成视频尤物| 久久永久免费一区二区| 免费在线观看激情小视频| 国内午夜精品视频在线观看| 太香蕉久久国产精品视频| 日韩人妻中文字幕精品| 久久大香蕉一区二区三区| 亚洲综合香蕉在线视频| 高清不卡一卡二卡区在线| 亚洲一二三四区免费视频| 欧美日韩综合在线精品| 九九热在线视频精品免费| 国产精品免费精品一区二区| 国产一区二区精品丝袜|