【发布时间】:2019-09-20 02:58:35
【问题描述】:
我已经在 dotnet core 中上传了 excel。我必须使用 tempdata 来检索列表中 excel 的详细信息。而不是在下面的代码中,我使用静态对象来检索列表。我的代码是这样工作的,当我点击上传按钮时,它将在 Excel 表中显示详细信息。当点击保存时,它会将其保存到数据库中,我还需要使用 ajax 调用在网格视图中进行编辑。帮帮我
我在控制器中的操作是
public async Task<IActionResult> ImportEmployeeDetails(IFormFile excelfile)
{
try
{
EmployeesViewModelList employeesListObject = new EmployeesViewModelList();
List<EmployeeModel> employeesViewModelList = new List<EmployeeModel>();
if (excelfile == null || excelfile.Length == 0)
{
return View(employeesListObject);
}
var supportedTypes = new[] { ".xls", ".xlsx" };
var ext = Path.GetExtension(excelfile.FileName);
if (!supportedTypes.Contains(ext))
{
return View(employeesListObject);
}
var path = Path.Combine(
Directory.GetCurrentDirectory(), "wwwroot",
"EmployeeDetails.xlsx");
if (System.IO.File.Exists(path))
{
System.IO.File.Delete(path);
}
using (var stream = new FileStream(path, FileMode.Create))
{
await excelfile.CopyToAsync(stream);
}
FileInfo file = new FileInfo(path);
using (ExcelPackage package = new ExcelPackage(file))
{
ExcelWorksheet worksheet = package.Workbook.Worksheets[1];
int rowCount = worksheet.Dimension.Rows;
int ColCount = worksheet.Dimension.Columns;
for (int i = 2; i <= rowCount; i++)
{
EmployeeModel emp = new EmployeeModel();
emp.EmployeeId = Convert.ToInt32(worksheet.Cells[i, 1].Value.ToString());
emp.EmpFirstName = worksheet.Cells[i, 2].Value.ToString();
employeesViewModelList.Add(emp);
}
employeesListObject.EmpModelList = employeesViewModelList;
return View(employeesListObject);
}
}
catch(Exception ex)
{
TempData["Message"] = "Opps! Something Went wrong!";
return RedirectToAction("ExcelPackage");
}
}
【问题讨论】:
-
可以提供有关您希望使用 TempData 做什么的更多详细信息
-
点击上传按钮后,我需要在同一页面中阅读我的 excel 详细信息。我必须使用 tempdata 存储列表并检索它
标签: asp.net asp.net-mvc file-upload tempdata