【问题标题】:How to use Tempdata to display the list如何使用 Tempdata 显示列表
【发布时间】: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


【解决方案1】:

试试这个,使用你自己的列表。

List<string> SomeList = new List<string>();

TempData["MyList"] = SomeList;

//then to get data just do 

SomeList = TempData["MyList"] as List<string>; //This converts back to List<T>

将列表添加到 TempData 后,您可以从同一控制器中的任何操作或视图中检索它

【讨论】:

  • 很高兴它有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-18
  • 1970-01-01
  • 2021-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多