私は以下のように剣道アップロードをセットアップしました。剣道アップロードでIDでファイルを削除
@(Html.Kendo().Upload().Name("files")
.Async(a => a
.Save("UploadAttachments", "Mycontroller")
.Remove("RemoveAttachments", "Mycontroller")
.SaveField("files")
.RemoveField("ids")
.AutoUpload(true))
.Events(e => e
.Success("onUploadSuccess")
.Error("onUploadError"))
.Files(files =>
{
foreach (var f in Model.Attachments)
{
files.Add().Name(f.FileName).Extension(Path.GetExtension(f.FileName));
}
}))
UploadAttachments方法は、サーバのファイルにファイルを保存し、DBにレコードを作成し、次のモデル
Id-long
FileName: fileName
RemoveAttachments方法は、IDSを期待返します。既存の空のファイルを使用して作成する際に、IDを使用してファイルを削除できるようにファイルを更新する次のイベントハンドラがあります。
function onUploadSuccess(e) {
if (e.operation == "upload") {
e.files[0].data = e.response[0]; // hold the attachment detail
e.files[0].name = e.response[0].Id; // change name with id so it can be passed to remove method
}
}
しかし、既存のファイルでは、ファイルを更新したり、Model.AttachementsのIDをアップロード制御に割り当てる方法は考えられませんでした。
私はinitの間にidで名前を設定できますが、そのようにしてもファイルの名前を正しく表示することはできません。
foreach (var f in Model.Attachments)
{
files.Add().Name(f.Id.ToString).Extension(Path.GetExtension(f.FileName));
}
これは、UIの間違ったファイル名を表示します。