我正在使用 ASP.Net Core 和 MVC 来创建一个应用程序。我目前正在使用 Visual Studio 和 IIS express。以下是我目前的项目结构:
*项目目录
-wwwroot
-区域
-附件
-控制器
-楷模
- 意见
我目前将图像存储在附件文件夹中。
以前我在我的startup.cs里面写过类似的东西
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(
Path.Combine(Directory.GetCurrentDirectory(), "Attachments")),
RequestPath = "/Attachments"
});
Run Code Online (Sandbox Code Playgroud)
我也在下面做了这样的事情:
appendImage(@Url.Content("~/Attachments/")+result.fileName);
Run Code Online (Sandbox Code Playgroud)
我这样做是为了在我的视图中显示图像。图像显示成功。
我现在想要实现的是在 UI 上允许用户选择删除该附件文件夹中的文件
我尝试了以下代码:
string contentRootPath = _hostingEnvironment.ContentRootPath;
string fullImagePath = Path.Combine(contentRootPath + "\\Attachments", currentItemToDelete.FileName);
if (System.IO.File.Exists(fullImagePath))
{
try{
System.IO.File.Delete(fullImagePath);
}catch(Exception e){
operationResult = "Attachment Path. Internal Server Error";
}
}
Run Code Online (Sandbox Code Playgroud)
执行确实进入 ,if (System.IO.File.Exists(fullImagePath))
但在到达 时引发异常System.IO.File.Delete
。该异常表明驻留在该路径中的文件正被另一个进程使用。因此我无法删除该文件。访问该文件的唯一进程是我同时创建/调试的 Web 应用程序。如何防止发生此异常?我是否必须使用其他类型的代码来删除文件?
编辑以包含更多详细信息:
在我的视图中(index.cshtml): …
我不知道如何List
使用C#创建一个包含泛型数据类型元素的东西.
目前我的代码中定义了两个非常相似的类:
public class ClassOne
{
public int draw { get; set; }
public int recordsTotal { get; set; }
public int recordsFiltered { get; set; }
public List<SpecialClass> data { get; set; }
}
public class ClassTwo
{
public int draw { get; set; }
public int recordsTotal { get; set; }
public int recordsFiltered { get; set; }
public List<YTDTRNSLine> data { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我目前的思考过程是我应该将这两个类概括为一个类.因为唯一的区别是其中一个属性是a List
.
我是否List
用这样的东西来定义:
public List<object> data {get;set;} …
Run Code Online (Sandbox Code Playgroud)