ASP.NET Core Razor Pages重定向异常:找不到'Miner/MinerDetail'页面
解决ASP.NET Core Razor Pages重定向到
miner/MinerDetail页面的报错问题 可能的原因及对应解决方案
1. 页面路径与文件结构不匹配
Razor Pages对页面路径的匹配严格对应物理文件结构且区分大小写:
- 检查文件结构:确认
MinerDetail.cshtml(含后置代码文件)确实位于Pages/miner目录下,若实际目录是大写的Miner,重定向路径要写成Miner/MinerDetail。 - 检查自定义路由:如果
MinerDetail.cshtml.cs中配置了[PageRoute("/自定义路由")],重定向时必须使用这个自定义路由,而非物理路径。
2. 正确传递模型到目标页面
重定向属于GET请求,无法直接传递复杂模型,可通过两种方式处理:
- 用TempData传递序列化后的模型
// 发起重定向的页面代码 TempData["MinerPartsView"] = JsonSerializer.Serialize(minerPartsView); return RedirectToPage("/miner/MinerDetail"); // 路径前加斜杠确保是根目录下的miner文件夹 // MinerDetail页面的OnGet方法 public void OnGet() { if (TempData["MinerPartsView"] != null) { var model = JsonSerializer.Deserialize<MinerPartsViewModel>(TempData["MinerPartsView"].ToString()); // 后续模型逻辑处理 } } - 传递模型唯一标识,目标页面重新查询数据
// 发起重定向的页面代码 return RedirectToPage("/miner/MinerDetail", new { id = minerPartsView.Id }); // MinerDetail页面的OnGet方法 public void OnGet(int id) { // 根据id从数据源获取完整模型 var model = _minerService.GetMinerPartsById(id); // 后续模型逻辑处理 }
3. 确认页面文件有效性
- 检查
Pages目录下是否存在miner子目录,且目录内有MinerDetail.cshtml和MinerDetail.cshtml.cs文件。 - 确认文件未被排除在项目外,右键文件查看属性,确保“复制到输出目录”设置符合需求。
内容的提问来源于stack exchange,提问作者MH Nikbakht
相关产品推荐
相关产品推荐

