Скачать файл из базы данных, используя MVC javascript бритву - PullRequest
0 голосов
/ 07 мая 2018

Я отображаю список файлов (в базе данных), которые можно загрузить в таблицу.

<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 не используется в этом контексте».

Как я могу отправить информацию в метод контроллера?

1 Ответ

0 голосов
/ 07 мая 2018

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');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...