【发布时间】:2019-06-28 22:32:25
【问题描述】:
我正在开发文档管理系统,但无法在 asp.net core 2.0 razor 页面中通过 SQL 数据库执行下载操作,下面是有关我的项目的更多详细信息。
索引.cshtml
@page
@model IndexModel
@{
ViewData["Title"] = "Schedules";
}
<div style="background-color:aliceblue;">
<hr />
<div class="well well-sm " style="background-color:lightskyblue;height:50px;"><h3 style="text-align:center;color:white;font-weight:bold;margin-top:0px;"> +Add Files</h3></div>
<div class="row">
<div class="col-md-4">
<form method="post" enctype="multipart/form-data">
<div class="form-group">
<label asp-for="FileUpload.Title" class="control-label"></label>
<input asp-for="FileUpload.Title" type="text" class="form-control" />
<span asp-validation-for="FileUpload.Title" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="FileUpload.UploadPublicSchedule" class="control-label"></label>
<input asp-for="FileUpload.UploadPublicSchedule" type="file" class="form-control btn btn-primary btn-sm float-left" style="height:auto" />
<span asp-validation-for="FileUpload.UploadPublicSchedule" class="text- danger"></span>
</div>
<input type="submit" value="Upload" class="btn btn-primary" />
</form>
</div>
</div>
<hr />
<h3>Loaded Schedules</h3>
<table class="table " style="background-color:lightskyblue;">
<thead style="font-weight:bold ;color:white;background-color:black;margin-right:-50px;padding-right:80px;">
<tr style="background-color:darkblue;color:white;">
<th>
@Html.DisplayNameFor(model => model.Schedule[0].Title)
</th>
<th>
@Html.DisplayNameFor(model => model.Schedule[0].UploadDT)
</th>
<th>
@Html.DisplayNameFor(model => model.Schedule[0].PublicScheduleSize)
</th>
@*<th class="text-center">
@Html.DisplayNameFor(model => model.Schedule[0].PrivateScheduleSize)
</th>*@
<th class="text-center">Operations</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach (var item in Model.Schedule)
{
<tr style="font-weight:bold">
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
<td>
@Html.DisplayFor(modelItem => item.UploadDT)
</td>
<td>
@Html.DisplayFor(modelItem => item.PublicScheduleSize)
</td>
<td style="margin-left:-60px;">
@*<a asp-page="./Delete" asp-route-id="@item.ID">Delete</a>*@
<a asp-page="./Delete" asp-route-id="@item.ID" class="btn btn-danger glyphicon glyphicon-trash" role="button">Delete</a>
</td>
<td>
<a asp-page-handler="karuna.txt" role="button"
download>
download the license
</a>
</td>
</tr>
}
</tbody>
</table>
</div>
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
<script>
function createPDFLink(fileName) {
var doc = new pdf();
// whatever content you want to download
var a = document.createElement("a");
a.download = fileName;
a.title = "download as PDF";
a.href = doc.output('datauri', { "fileName": name });
return a;
}
// some paragraph in the page
document.querySelector(
"p.saveaspdf"
).appendChild(createPDFLink(
"document-" + document.title + ".pdf"
));
</script>
这是页面模型:
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.EntityFrameworkCore;
using DMS.Models;
using DMS.Utilites;
using System.IO;
using System.Runtime.InteropServices.ComTypes;
namespace DMS.Pages.Schedules
{
public class IndexModel : PageModel
{
private readonly DMS.Models.DatabaseContext _context;
public IndexModel(DMS.Models.DatabaseContext context)
{
_context = context;
}
[BindProperty]
public FileUpload FileUpload { get; set; }
public IList<Schedule> Schedule { get; private set; }
public async Task OnGetAsync()
{
Schedule = await _context.Schedule.AsNoTracking().ToListAsync();
}
public async Task<IActionResult> OnPostAsync()
{
if (!ModelState.IsValid)
{
Schedule = await _context.Schedule.AsNoTracking().ToListAsync();
return Page();
}
var publicScheduleData =
await FileHelpers.ProcessFormFile(FileUpload.UploadPublicSchedule, ModelState);
if (!ModelState.IsValid)
{
Schedule = await _context.Schedule.AsNoTracking().ToListAsync();
return Page();
}
var schedule = new Schedule()
{
PublicSchedule = publicScheduleData,
PublicScheduleSize = FileUpload.UploadPublicSchedule.Length,
Title = FileUpload.Title,
UploadDT = DateTime.UtcNow
};
_context.Schedule.Add(schedule);
await _context.SaveChangesAsync();
return RedirectToPage("./Index");
}
}
}
- 我正在尝试从数据库中下载所有文件。
- 所有页面都连接到数据库。
【问题讨论】:
-
哪里没用?您收到任何错误吗?
标签: c# asp.net-core-2.0 razor-pages