我有一個Kendo網格,第一列是超鏈接。每個超鏈接綁定到一個pdf文件名。pdf文件將在項目文件夾中。MVC Kendo網格動作鏈接
網:
File Name Date
----------------|--------
file1.pdf |12.03.2014
file2.pdf |13.03.2014
現在聞一點擊這個鏈接「file1.pdf」我要傳遞給模型此文件名。此操作鏈接應該有一個'GetPdf'操作,它將返回PDFResult。點擊此鏈接後,相應的pdf文件應在<object>
標籤的同一頁面中打開。同樣的方式,如果我點擊第二個鏈接,然後file2.pdf應該打開裏面的對象標籤與出postpostback。如何實現這一點??這是我的代碼。 我的觀點:
@(Html.Kendo().Grid<Myproject.Models.PdffilesModel>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.FileName)
.ClientTemplate(
"<a href='" +
@Html.ActionLink("#=FileName#'", "GetPdf", "Home")+
"/#= FileName #" +
"</a>");
columns.Bound(c => c.CreatedDate).Width(70);
})
.HtmlAttributes(new { style = "height: 350px;" })
.Scrollable()
.Groupable()
.Sortable()
.Pageable(pageable => pageable
.Refresh(true)
.PageSizes(true)
.ButtonCount(1))
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(false)
.Read(read => read.Action("Customers_Read", "Home"))
)
)
的HomeController://這裏我硬編碼的文件名,但它應該是來自超級鏈接的點擊動作
public FileStreamResult GetPdf(string filenmae)
{
FileStream fs = new FileStream("/pdfSample.pdf", FileMode.Open, FileAccess.Read);
return File(fs, "application/pdf");
}
數據源到網格綁定:
public ActionResult Customers_Read([DataSourceRequest]DataSourceRequest request)
{
return Json(GetAttachments().ToDataSourceResult(request));
}
private static IEnumerable<PdffilesModel>GetAttachments()
{
IEnumerable<PdffilesModel> finalresult ;
List<PdffilesModel> list= new List<PdffilesModel>();
var northwind = new PdffilesModel();
northwind.FileName = "file1.pdf";
northwind.CreatedDate = new DateTime(2014,03,04).ToString("d");
list.Add(northwind);
finalresult = list;
return finalresult;
}
這是當點擊網格動作鏈接時,對象標籤應該與pdf結果綁定。
<object class="pdfdiv" id="ajaxpdf" data="@Url.Action("GetPdf")"></object>