C# @Action(“Action”、“Controller”调用同名的post和get方法
我有一个控制器,其中有两个与HttpPost和HttpGet同名的操作方法,如下所示,当调用带有C# @Action(“Action”、“Controller”调用同名的post和get方法,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我有一个控制器,其中有两个与HttpPost和HttpGet同名的操作方法,如下所示,当调用带有@Url.action(“DoSomething”,“controller”)的链接时,然后调用这两个方法,如何只调用GET方法 在@URL.Action或任何其他方式中,是否仍然可以传递类型GET或POST [HttpGet] public ActionResult DoSomething(int ? MyParam) { } [HttpPost] public ActionResult DoS
@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而不是模型之后,也可以尝试在表单声明中添加POST:
@using (Html.BeginForm("DoSomething","Controller", FormMethod.Post))
{
}
或使用HTML:
<form action="@Url.Action("DoSomething","Controller")" method="POST">
...
</form>
...
HTTP动词POST/GET将把您的请求路由到适当的操作。默认设置为GET。尝试在表单声明中添加帖子:
@using (Html.BeginForm("DoSomething","Controller", FormMethod.Post))
{
}
或使用HTML:
<form action="@Url.Action("DoSomething","Controller")" method="POST">
...
</form>
...
HTTP动词POST/GET将把您的请求路由到适当的操作。默认设置是GET。我想您可能会将
Url.Action()
与Html.Action()
混淆(如果我错了,请道歉)。正如有人在评论中提到的,Url.Action()
将根据用于构建锚标记的参数呈现Url<另一方面,code>Html.Action()在为服务器端的响应构建页面时将调用一个操作,我猜这也是您所指的
如果是这种情况,则需要通过如下方式指定路由值,为DoSomething()
指定操作参数:
@Html.Action(“DoSomething”,“Home”,new{MyParam=2})
DoSomething(int MyParam)
的结果将被注入页面Html.Action
不是用来调用POST
的,所以不能在用POST
动词修饰的动作上使用它。我想你可能会把Url.Action()
与Html.Action()
混淆了(如果我错了,请道歉)。正如有人在评论中提到的,Url.Action()
将根据用于构建锚标记的参数呈现Url<另一方面,code>Html.Action()在为服务器端的响应构建页面时将调用一个操作,我猜这也是您所指的
如果是这种情况,则需要通过如下方式指定路由值,为DoSomething()
指定操作参数:
@Html.Action(“DoSomething”,“Home”,new{MyParam=2})
DoSomething(int MyParam)
的结果将被注入页面Html。Action
不打算调用POST
,因此不能将其用于已用POST
动词修饰的操作。问题是,当从布局中删除该部分代码时,我又收到一个ajax请求,要求检查页面是否已完全加载以显示进度条,它在没有两次调用任何操作方法的情况下运行良好。问题是我又收到一个ajax请求,检查页面是否已完全加载以显示进度条,当从布局中删除该部分代码时,它在没有两次调用任何操作方法的情况下运行良好。您如何使用@Url.action()
?如果它在一个链接中,那么它将始终是一个GET请求。您可以在表单标签中发布,也可以通过javascriptUrl发布。Action
只提供一个Url—一个字符串。就其本身而言,它不需要调用任何东西。我们需要确切地了解您在哪里使用它。字符串本身不调用任何东西。请发布一篇文章,问你如何使用@Url.Action()
?如果它在一个链接中,那么它将始终是一个GET请求。您可以在表单标签中发布,也可以通过javascriptUrl发布。Action
只提供一个Url—一个字符串。就其本身而言,它不需要调用任何东西。我们需要确切地了解您在哪里使用它。字符串本身不调用任何东西。请发布一个默认值,默认值确实是GET
。这意味着,如果他们使用默认设置,他们就不能报告他们在问题中声称的症状。@Damien_异教徒编辑了我的问题,请看它是否澄清。@LearningPal achor标记生成一个链接,通过GET导航。它不会调用您的post方法。如果您的post方法被调用,则它来自表单提交,而不是锚导航。默认值确实是GET
。这意味着,如果他们使用默认设置,他们就不能报告他们在问题中声称的症状。@Damien_异教徒编辑了我的问题,请看它是否澄清。@LearningPal achor标记生成一个链接,通过GET导航。它不会调用您的post方法。如果您的post方法被调用,则它来自表单提交,而不是锚导航。@Html.Action()花费了很长时间,并且在我尝试在for循环中生成链接时导致页面崩溃。@Html.Action()花费了很长时间,并且在我尝试在for循环中生成链接时导致页面崩溃。。