You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

同一控制器中RedirectToAction跳转不生效该如何解决?

核心问题说明

你当前使用的return View()不属于重定向操作,仅会在当前/projects/assign/2路由下直接渲染Create视图,既不会触发地址栏路径变更,也不会执行Create对应的Action方法逻辑。你收到的报错大概率是因为Create视图要求的模型类型与你传入的参数不匹配,或路由配置不符合预期。


正确实现方案

方案1:使用RedirectToAction实现路由重定向(符合你预期的跳转需求)

该方案执行后地址栏会自动变为/projects/create,同时支持传递id参数:

[HttpGet]
public IActionResult Assign(int? id)
{
    // 第一个参数为目标Action名称,第二个参数为要传递的路由参数
    return RedirectToAction("Create", new { id = id });
}

同时需确保你的Create Action支持接收id参数:

[HttpGet]
public IActionResult Create(int? id)
{
    // 此处保留Create页的原有业务逻辑
    return View();
}

方案2:不需要修改地址栏,仅渲染Create视图

如果不需要跳转路由,仅要在Assign的路由下展示Create页,需要保证传入的参数和Create视图声明的@model类型完全匹配:

// 示例:如果Create视图需要自定义视图模型,需先构造对应实例再传入
public class ProjectCreateViewModel
{
    public int? Id { get; set; }
    // 补充其他视图需要的字段
}

[HttpGet]
public IActionResult Assign(int? id)
{
    var model = new ProjectCreateViewModel { Id = id };
    return View("Create", model);
}

报错排查建议

如果修改后仍有异常,可优先核对以下项:

  • 路由配置中是否对Create接口做了特殊的参数限制
  • Create.cshtml文件是否存放在正确的视图目录下(默认路径为Views/Projects/Create.cshtml)
  • 开发环境下开启详细异常页,查看具体错误堆栈定位问题

内容的提问来源于stack exchange,提问作者mrnewguy1998

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 04:24:08