【问题标题】:How to change below code from asp.net to razor page如何将下面的代码从 asp.net 更改为 razor 页面
【发布时间】:2019-11-28 20:01:58
【问题描述】:

我是 Razor 页面的新手,但一直在使用 aspx。以下是我的代码 - 请帮我将其转换为 Razor 页面:

void Page_Load(object sender, EventArgs e) 
{
    foreach(string f in Request.Files.AllKeys) 
    {
        HttpPostedFile file = Request.Files[f];
        file.SaveAs("C:\\e_data\\WorkPage\\IMS18\\ALBAB_Dynamic\\20008\\Case_Manager\\" + file.FileName);
    }   
}

我想更改为剃须刀页面代码。

【问题讨论】:

标签: asp.net-mvc asp.net-core razor-pages


【解决方案1】:

这是我用于上传单个文件并将文件路径存储在数据库中的方法。它将解释微软在其文档中遗漏的部分(例如 .netcore2.2 中基本目录的路径)请注意,安全性对我来说并不是什么大问题,因为这是一个小公司的内部网......但是那里有一些关于获取不带扩展名的文件名的内容,出于安全原因,您可能希望在不带文件扩展名的情况下存储(或删除然后添加您自己的扩展名):

 public async Task<IActionResult> OnPostAsync()
    {
        if (id == null)
        {
            return NotFound();
        }
        Kit = await _context.Kits.FirstOrDefaultAsync(m => m.ID == id);

        if (Kit == null)
        {
            return NotFound();
        }
        if (Request.Form.Files.Count > 0)
        {
            IFormFile file = Request.Form.Files[0];



            string folderName = "UploadedOriginalBOMs";

            string OrgBOMRootPath = Path.Combine(AppContext.BaseDirectory, folderName);
            if (!Directory.Exists(OrgBOMRootPath))
            {
                Directory.CreateDirectory(OrgBOMRootPath);
            }
            string sFileExtension = Path.GetExtension(file.FileName).ToLower();
            string fullPath = Path.Combine(OrgBOMRootPath, file.FileName);
            //  StringBuilder sb = new StringBuilder();


            if (file.Length > 0)
            {

                String cleanFilename = Path.GetFileNameWithoutExtension(file.FileName);

                using (var stream = new FileStream(fullPath, FileMode.Create))
                {

                    file.CopyTo(stream);
                }



                Kit.PathToOriginalBOM = "UploadedOriginalBOMs/" + file.FileName;
                _context.Kits.Attach(Kit).State = EntityState.Modified;
                await _context.SaveChangesAsync();
            }
        }
        else
        {
            if (!ModelState.IsValid)
            {

                return Page();
            }



        }


        return RedirectToPage("./Index");
    }

您会注意到,您可以使用与 .aspx 文件中相同的 forloop。

【讨论】:

    猜你喜欢
    • 2023-03-09
    • 2011-04-16
    • 1970-01-01
    • 2012-06-17
    • 2019-10-13
    • 2018-07-23
    • 2018-03-11
    • 2016-04-01
    • 2023-01-30
    相关资源
    最近更新 更多