RedirectToAction将querystring参数作为url参数传递

时间:2018-09-28 15:04:23

标签: asp.net-mvc-4 asp.net-mvc-routing

我有一个我不太了解的错误。

我的控制器中有两个动作:

[Route("modifica/{id}")]
public ActionResult Edit(long id)
{
    ...
}

[HttpPost]
[Route("modifica")]
public ActionResult Edit(MyViewModel viewModel)
{
    ...

    RedirectToAction("Edit", new { id = long.Parse(viewModel.Id) });
}

当我执行重定向时,出现404错误,并出现以下错误:

  

在控制器“ MyController”上未找到匹配的动作。当控制器使用RouteAttribute进行路由,但该控制器上没有任何动作与请求匹配时,就会发生这种情况。

如果我从

更改GET中操作的Route属性值
[Route("modifica/{id}")]

[Route("modifica")]

它有效,我将重定向到/modifica?id=xxx。但是我需要重定向到/modifica/xxx。有没有一种方法可以解决此问题,而无需修改Global.asax中的路由配置?

我以这种方式想,它可以工作,但不能...有人可以帮我吗?

我一直在寻找堆栈溢出的问题,但是所有问题都与我的有所不同。

谢谢

0 个答案:

没有答案