ASP.NET MVC从同一控制器发布到控制器操作

时间:2016-12-15 19:58:02

标签: c# asp.net-mvc-3

我正在研究这个目前有以下方法的项目:

 [HttpPost]
 public ActionResult Service(string identifier)

此功能目前正由网页表单

使用
 <form method="POST" action="/Connector/Service">
 <input type="hidden" id="identifier" name="identifier" value="@TempData["Identifier"]"/>

因此,当用户点击在网页上提交表单的按钮时,将使用“服务”。用户从另一个操作进入此页面。 我必须实现一项功能,有时用户不会将用户带到网页,而是直接从操作中转到Service方法。

我在搜索时发现了这个帖子:ASP.NET MVC: RedirectToAction with parameters to POST Action

但似乎这是糟糕的设计,并且返回RedirectToAction with Service实际上对我不起作用。

return RedirectToAction("Service", new {identifier})

经过更多搜索,似乎我实际上无法向我的控制器发出帖子请求。 Asp.NET MVC : redirect to another controller with POST Action

关于我在这里可以做什么的任何想法?我对ASP.NET很新,不知道该做什么。感谢所有帮助。

2 个答案:

答案 0 :(得分:2)

事实证明我可以通过

直接调用该函数
Service(identifier)

我一直在想我必须使用RedirectToAction才能让我无法理解。

感谢Sherlock获得答案!

答案 1 :(得分:0)

标签[post]仅在视图本身提交表单时使用,如果您的页面从另一个视图重定向到控制器函数,则有两个选项:

  1. 使用[get]标记,您可能会对此标记有更多的好运,虽然我不确切知道它是如何工作的(可能会被编辑)

  2. 使用带参数的无标记函数,如果从另一个视图重定向到带参数的函数,如public ActionResult Service(string identifier)没有标记,则会自动到达此函数。

    如果没有指定参数,它将只是NULL。