В чем разница между [AcceptVerbs (HttpVerbs.Post)] и [HttpPost]?

Я могу украсить действие либо с помощью [AcceptVerbs (HttpVerbs.Post)] / [AcceptVerbs (HttpVerbs.Get)]

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(string title)
{
    // Do Something...
}

или с атрибутами [HttpPost] / [HttpGet]

[HttpPost]
public ActionResult Create(string title)
{
    // Do Something...
}

Они разные?

 andilabs25 февр. 2014 г., 16:22
как выражения как [HttpPost] называются в asp net mvc? декораторы?
 dbones02 окт. 2010 г., 02:48
HttpPost - это MVC 2.0+, и, как сказал Мэтью, это всего лишь короткая рука
 Gabriel Espinoza21 дек. 2014 г., 05:10
@andi Они называются "Атрибуты"msdn.microsoft.com/en-us/library/z0w1kczw.aspx
 CompanyDroneFromSector7G02 нояб. 2017 г., 17:05
Я нашел это[AcceptVerbs("GET")] может остановить запись для этого действия, генерируемого в справочных документах.

Ответы на вопрос(1)

[HttpPost] это сокращение для[AcceptVerbs(HttpVerbs.Post)], Разница лишь в том, что вы не можете использовать[HttpGet, HttpPost] (и аналогичные) вместе на одном действии. Если вы хотите, чтобы действие реагировало как на GET, так и на POST, вы должны использовать[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)].

 Sergey15 июл. 2014 г., 00:16
Я предпочитаю использовать [HttpPost] и [HttpGet].Когда они нужны мне для одного действия: просто не пользуйтесь (так как вам не нужны PUT, DELETE или другие)
 Tony Wall02 апр. 2015 г., 08:55
Я предпочитаю последовательность, которая, к сожалению, означает, что только «старый» AcceptVerbs - это способ, который всегда будет работать, позор. Microsoft должна изменить атрибут, чтобы разрешить многократное использование и обработку, что соответственно в их конвейере, чтобы предотвратить этот «новый» метод, вызывающий путаницу и проблемы, например,stackoverflow.com/questions/16658020/...
 24x7Programmer19 сент. 2013 г., 19:49
это более правильный и информативный ответ, чем принятый.
 KiranSolkar17 июл. 2017 г., 11:13
[AcceptVerbs ("GET", "POST")]
 Robert Harvey30 июн. 2015 г., 21:15
@CodeChief Быстрый мысленный эксперимент прояснит, почему это так ...AcceptVerbs Атрибут принимает один параметр Flags. Вы устанавливаете несколько флагов, изменяя их.[HttpPost] это просто стенография для[AcceptVerbs(HttpVerbs.Post)]  Нет никакого механизма, доступного для флагов ИЛИ вместе, если вы используете сокращение; вот почему AcceptVerbs все еще существует (помимо причин обратной совместимости).
 Tony Wall01 июл. 2015 г., 22:24
@RobertHarvey - Понятно, что они, обсуждение почему бы не позволить двумразные Атрибуты HttpGet и HttpPost для совместной работы. То, о чем я должен думать, - это обучение и создание команд разработчиков. Что вы говорите другим разработчикам делать ... «О, используйте этот атрибут ... но в этом случае используйте другой ....». Следовательно, для согласованности единственный, который вы можете просто сказать людям, это AcceptVerbs. Это ограничение HttpGet / HttpPost не является интуитивно понятным, возможно, ошибкой. В общем, не большая проблема, просто "гоча".

Ваш ответ на вопрос