如何确定视图是用于ASP.NET MVC中的GET还是POST?

时间:2011-02-14 16:41:50

标签: asp.net-mvc

MVC使用操作属性来映射http get或post的相同视图:

 [HttpGet] 
 public ActionResult Index()
 {
    ViewBag.Message = "Message";
    return View();
 }

 [HttpPost]
 public ActionResult Index(decimal a, decimal b, string operation)
 {
     ViewBag.Message = "Calculation Result:";
     ViewBag.Result = Calculation.Execute(a, b, operation);
     return View();
 }

在MVC视图中,如何确定视图是用于http get还是http post?


在视图中IsPost

@{
     var Message="";
     if(IsPost)
      {
            Message ="This is from the postback";
      }
       else
    {
            Message="This is without postback";
    }
}

PS:对于点网核心,它是:

Context.Request.Method == "POST"

3 个答案:

答案 0 :(得分:32)

System.Web.HttpContext.Current.Request.HttpMethod存储当前方法。或者只是Request.HttpMethod在视图中,但如果你需要检查一下,你的方法可能有问题。

考虑使用Post-Redirect-Get模式进行重新发布。

答案 1 :(得分:9)

<% if (System.Web.HttpContext.Current.Request.HttpMethod.ToString() == "GET") { %><!-- This is GET --><% }
   else if (System.Web.HttpContext.Current.Request.HttpMethod.ToString() == "POST")
      { %><!--This is POST--><%}
      else
      { %><!--Something another --><% } %

答案 2 :(得分:2)

对于点网核心,它是:

  

Context.Request.Method ==“ POST”