在MVC3中,可以确定操作是POST还是GET方法的结果吗?我知道您可以使用HttpPost和HttpGet来装饰操作,以便在其中一个发生时触发特定的操作。我想要做的就是把这些属性去掉,然后通过编程的方式确定是哪一个导致了这个动作。
原因是,由于我的搜索页面的架构方式,我将搜索模型存储在TempData中。最初的搜索导致POST到搜索结果页面,但分页链接都只是指向“/result/2”的链接(对于第2页)。他们检查TempData,看看模型是否在那里,如果有,就使用它。
当有人使用“上一步”按钮转到搜索表单并重新提交它时,这会导致问题。它仍然在TempData中选择模型,而不是使用新的搜索条件。因此,如果这是一篇文章(例如,有人刚刚提交了搜索表单),我想首先清除TempData。
发布于 2011-05-07 01:00:54
HttpRequest
对象上的HttpMethod
属性将为您获取它。您可以只使用:
if (HttpContext.Current.Request.HttpMethod == "POST")
{
// The action is a POST.
}
或者,您可以直接从当前控制器获取Request
对象。这只是一处房产。
发布于 2019-01-09 16:22:00
最好将它与HttpMethod
属性进行比较,而不是字符串。HttpMethod在以下命名空间中提供:
using System.Net.Http;
if (HttpContext.Request.HttpMethod == HttpMethod.Post.Method)
{
// The action is a post
}
发布于 2019-12-17 14:35:03
要在ASP.NET核心中检测到此问题,请执行以下操作:
if (Request.Method == "POST") {
// The action is a POST
}
https://stackoverflow.com/questions/5914648
复制相似问题