Подтвердить что ты не робот

Как определить, является ли представление для GET или POST в 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";
    }
}
4b9b3361

Ответ 1

System.Web.HttpContext.Current.Request.HttpMethod хранит текущий метод. Или просто Request.HttpMethod внутри, но если вам нужно это проверить, может быть что-то не так с вашим подходом.

Подумайте об использовании шаблона Post-Redirect-Get для формирования повторной отправки.

Ответ 2

<% 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 --><% } %