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