MVC では、ビューモデルの「リスト」を反復処理して、ビュー内にテーブルを作成しました。
@foreach(var item in Model)
{
<tr id="row-@item.name">
<td>
@item.type
</td>
<td >
@Html.ActionLink((string)item.name, "Download", "FileUpload", new { rout = item.rout, fileName = item.name }, null)
</td>
<td>
@item.size
</td>
<td>
<a href="#" id="delete-file" del-url="@item.delete_url">Delete</a>
</td>
</tr>
}
ページを読み込むと、ファイルのリストが表示され、それぞれに「削除」リンクが表示されます。
基本的な「行の削除」メソッドをjQueryで実装しました:
$('#delete-file').click(function() {
var delUrl = $(this).attr('del-url');
$.post(delUrl, null, removeRow(),'json')
});
function removeRow() {
$($('#delete-file').closest('tr')).fadeOut('slow');
}
ファイル行の 1 つで「削除」をクリックすると、うまく機能しますが、別の行 (削除) をクリックしても何も起こりません。サーバー上でファイルは削除されず、行は完全に無視されているかのように削除されません。