javascript - 使用 MVC javascript razor 从数据库下载文件
问题描述
我显示可以在表格中下载的文件列表(在数据库中)。
<table style="border: none; width:100%">
@for (int i = 0; i <= Model.docs.Count() - 1; i++)
{
<tr onclick="downloadFile('@Model.docs[i].id.ToString()')" class="rowFile" data-row=@i id=@("rigaDoc" + i)>
<td style="border-bottom:1px solid black; width:30px;">
<img src="@Url.Content(Model.docs[i].icon)" alt="Image" />
</td>
<td style="border-bottom:1px solid black; padding-left: 20px; width:auto;">
@Html.Label(Model.docs[i].nameFile.ToString().Split('.')[0], new { @class = "" })
</td>
</tr>
}
</table>
一旦用户单击该表的一行,我需要将该行的 GUID 发送到控制器并开始文件下载。
function downloadFile(fileId) {
var urlDownload = '@Url.Action("Download", "GestioneDocumenti", new { id = fileId })';
}
但是,我不能使用 fileId 因为调试器说:
“名称 fileId 未在此上下文中使用”。
如何将信息发送到控制器方法?
解决方案
Razor 是服务器端代码,在发送到视图之前在服务器上进行解析。将您的功能更改为
function downloadFile(fileId) {
var urlDownload = '@Url.Action("Download", "GestioneDocumenti")' + '/' + fileId;
}
更好的解决方案是将 url 作为data-
属性生成
<tr data-url="@Url.Action("Download", "GestioneDocumenti", new { id = Model.docs[i].id })" class="rowFile">
并将脚本更改为
$('.rowFile').click(function() {
var urlDownload = $(this).data('url');
});
推荐阅读
- python-3.x - 我可以使用多个进程安全地读取 numpy 数组(或 pandas 数据帧)的不同子集吗?
- windows - 如何直接在 Windows 注册表中更改与策略相关的内容?(例如最大 pw 年龄)
- typescript - 为什么它无法读取文件?
- sql - 在 Oracle 中的 Select 查询中无法获取空查询结果
- javascript - 向自定义组件发送自定义道具失败
- excel - 将 csv 文件转换为 xlsx
- angular - 返回数据以在 Angular 中选择组件下拉列表
- angular - 单击角度动态添加的DOM(ngx-bootstrap datepicker)元素
- excel - Excel VBA宏选择多个范围,甚至复制,并导出为pdf
- javascript - NodeJS - 如何从 blob 下载?