如何在 asp.net mvc 中重定向到正确的控制器操作

Posted

技术标签:

【中文标题】如何在 asp.net mvc 中重定向到正确的控制器操作【英文标题】:How to redirect to correct controller action in asp.net mvc 【发布时间】:2013-02-13 16:34:31 【问题描述】:

好的,所以我有一个 sn-p,它应该重定向到控制器的操作。

return RedirectToAction("add");

现在的问题是add 操作过载。一个在 HTTPrequest 是 GET 类型时调用,另一个在请求是 POST 类型时调用。无论如何我可以选择语句重定向到哪个动作?

【问题讨论】:

【参考方案1】:

RedirectToAction 向客户端浏览器返回 302(已移动)响应。 GET 是唯一能让你摆脱它的方法。

如果您询问是因为您想调用您的 POST/add 操作,这个related question 可能会有所帮助

【讨论】:

【参考方案2】:

试试这个

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult add()

    ...


[ActionName("add")]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult add_post()

    ...

这样你可以通过 POST 和 GET 来添加,并在控制器中调用 add 或 add_post

【讨论】:

以上是关于如何在 asp.net mvc 中重定向到正确的控制器操作的主要内容,如果未能解决你的问题,请参考以下文章

在 ASP.Net MVC3 中重定向到不影响 URL 的区域

在 ASP.NET MVC 中重定向未经授权的控制器

如何在控制器操作中重定向到 aspx 页面

防止在 asp.net core 2.2 中重定向到 /Account/Login

在 ASP.NET 中重定向之前的 Javascript 警报

ASP.NET MVC我想重定向到另一个将我的模型传递给它的动作,以获得正确的URL