【发布时间】:2019-01-10 08:10:45
【问题描述】:
我有一个控制器,其中有两个同名的操作方法,HttpPost 和 HttpGet 如下所示,当调用与@Url.Action("DoSomething","Controller") 的链接时,两个方法都被调用,我如何只调用 GET 方法?
有没有以@URL.Action 或任何其他方式传递类型 GET 或 POST?
[HttpGet]
public ActionResult DoSomething(int ? MyParam)
{
}
[HttpPost]
public ActionResult DoSomething(MyModel Model)
{
}
在 Razor 视图中当我建立类似的链接时
<a href="@Url.Action("DoSomething","Home",new { MyParam= Whatever})">JustDoIt</a>
然后它同时调用 POST 和 GET 方法,即使在将参数指定为 int 而不是模型之后也是如此
【问题讨论】:
-
您如何使用
@Url.Action()?如果它位于始终是 GET 请求的链接中。您可以在表单标签中发布,或通过 javascript 发布 -
Url.Action只是 给你一个 URL - 一个字符串。它本身并没有调用任何东西。 -
我们需要准确了解您在哪里使用它。
string不会自己调用任何东西。请发帖minimal reproducible example
标签: c# asp.net asp.net-mvc