【发布时间】:2016-01-11 03:16:05
【问题描述】:
我有以下看法:
@if (!string.IsNullOrWhiteSpace(ptiFileName))
{
<span style="font-style:italic">
<a href="@Url.Action("DownloadPtiDocument", "Project")" style="text-decoration:underline">@ptiFileName</a>
<a class="glyphicon glyphicon-trash" href="@Url.Action("DeletePtiDocument", "Project")" type=""></a>
</span>
}
当用户单击文件名链接时,DownloadPtiDocument 的控制器工作正常:
[Route("project/download/{id:int}")]
public async Task<ActionResult> DownloadPtiDocument(int id)
{
var ptiFile = ProjectRepository.GetById(id.ToString()) as Project;
if (ptiFile.PtiUploadDocuments == null)
return HttpNotFound();
var info = await S3Helpers.DownloadFile(ptiFile.PtiUploadDocuments.S3Bucket, ptiFile.PtiUploadDocuments.S3FileName);
if (info != null)
return new FileStreamResult(info.Stream, info.ContentType) { FileDownloadName = ptiFile.PtiUploadDocuments.FileName };
return HttpNotFound();
}
但我不知道如何声明函数 DeletePtiDocument,当我执行一些逻辑以从模型中删除数据时,用户将停留在当前屏幕上。
这是界面。单击图标“glyphicon glyphicon-trash”应该在我的控制器上执行一些操作,而无需刷新或离开当前屏幕。这可能吗?
【问题讨论】:
-
让它成为一个ajax调用。
-
在不离开当前页面的情况下发出 HTTP 请求,这将是由 JavaScript 代码发出的 AJAX 请求。
-
不幸的是我不熟悉javascript,如果你能指出我需要看的正确方向或教程。将不胜感激。
标签: asp.net-mvc model-view-controller