c# - 删除编辑表单中的图像选项
问题描述
我想删除编辑表单中的图像并显示上传文件选项。我如何使用 Ajax 来实现这一点,因为我正在为多个表单使用选项卡窗格。
这是我的代码,
生物数据.cshtml
<div class="form-group">
<label class="control-label-staff"><b>Photo</b></label>
@if (Model.ImageFiles != null)
{
foreach (var item in Model.ImageFiles)
{
if (item.Name.Substring(0, 2) == "IM")
{
<span class="control-label-staff">
<img src="~/Documents/EmployeeAttachments/@Request.Query["EmpID"].ToString()/@item.Name" width="70px" height="70px" />
</span><br/>
<a asp-page-handler="RemoveImage" data-ajax="true" data-ajax-method="post" data-ajax-complete="RemoveImageCompleted">Delete</a>
}
}
}
@if (Model.ImageFiles == null)
{
<input type="file" asp-for="StaffPhoto" class="form-control-staff" accept="image/*" style="border:1px solid white;" />
}
</div>
它没有调用 asp-page-handler 方法。直接执行ajax方法。
function RemoveImageCompleted(event) {
if (event.responseText != "") {
$("#Biodata").html(event.responseText);
} else {
alert("Image Has Been Deleted Successfully");
$.ajax({
url:rootPath + "/Staff/Onboarding/Biodata",
type: "get",
success: function (result) {
$("#Biodata").html(result);
$('a[href="#Biodata"]').tab('show');
}
})
}
}
这是我在 BioData.cshtml.cs 中的 asp-page-handler 方法
public async Task<IActionResult> OnPostRemoveImageAsync()
{
string filename = Request.Form["filename"];
if (filename != null)
{
var Folder = StaffBioData.EmpID.ToString();
string filedel = Path.Combine(_env.WebRootPath, "Documents/EmployeeAttachments", Folder, filename);
FileInfo fi = new FileInfo(filedel);
if (fi != null)
{
System.IO.File.Delete(filedel);
fi.Delete();
}
}
return new OkResult();
}
任何帮助将不胜感激。谢谢。
解决方案
链接是 GET 请求。您不能通过链接发布;这就是表格的用途。你需要类似的东西:
@if (Model.ImageFiles != null)
{
foreach (var item in Model.ImageFiles)
{
if (item.Name.Substring(0, 2) == "IM")
{
@*<a asp-page-handler="RemoveImage" data-ajax="true" data-ajax-method="post" data-ajax-complete="RemoveImageCompleted">Delete</a>*@
<form method="post" asp-page-handler="RemoveImage" data-ajax="true" data-ajax-method="post" data-ajax-complete="RemoveImageCompleted">
<input type="submit" value="delete" />
</form>
}
}
}
推荐阅读
- java - 尝试使用 Gradle 编译 Kotlin 和 Java 混合项目时出现错误“找不到符号”
- signal-processing - 使用分析器和周期波使用 webaudio API 创建相位声码器
- android - NumberFormatException...无效的双精度
- javascript - 在 Chrome 渲染器模拟后如何改变元素的颜色?
- laravel - 如何覆盖推送器配置值?
- ssl - 是否可以在不加密的情况下调用 Https?
- rust - serde_json to json 在柴油数据库对象中打印附加字符串 \r 和 \n
- neo4j - Neo4j中如何将一个节点转换为多个关系
- jenkins - 是jenkinsfile必须在根目录,给我提示Jenkinsfile could not be found
- python - 如何生成可按时间排序的唯一 ID?