2010-10-02 16 views
64

我可以裝飾的動作或者與的[AcceptVerbs(HttpVerbs.Post)] /的[AcceptVerbs(HttpVerbs.Get)][AcceptVerbs(HttpVerbs.Post)]和[HttpPost]之間的區別是什麼?

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

或與[HttpPost]/[HTTPGET]屬性

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

他們有區別嗎?

+1

HttpPost是MVC 2.0+,正如Matthew所說,它的只是簡短的手勢 – dbones 2010-10-02 00:48:36

+0

在asp net mvc中如何調用[HttpPost]這樣的表達式?裝飾? – andi 2014-02-25 15:22:29

+0

@andi他們被稱爲「屬性」http://msdn.microsoft.com/en-us/library/z0w1kczw.aspx – 2014-12-21 04:10:17

回答

49

沒有。一個只是另一個的簡寫。

+4

你確定嗎?如果是這樣,請看下面的答案! – 2013-11-06 11:02:59

+0

不,他們是彼此的反向 – 2015-05-11 03:23:40

157

[HttpPost][AcceptVerbs(HttpVerbs.Post)]的簡寫。唯一的區別是你不能在同一個動作中一起使用[HttpGet, HttpPost](和類似的)。如果您想要採取措施來響應GET和POST,則必須使用[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]

+14

這比接受的更正確和內容豐富的答案。 – 24x7Programmer 2013-09-19 17:49:15

+0

我更喜歡使用[HttpPost]和[HttpGet]。 **當我需要他們兩個爲一個動作:只是不使用任何**(因爲你不需要PUT,DELETE或其他) – Sergey 2014-07-14 22:16:35

+1

我更喜歡一致性,這意味着不幸只有「舊」AcceptVerbs是將永遠工作,恥辱。 Microsoft應該更改該屬性以允許多次使用,並在其管道中相應地進行處理,以防止此「新」方法造成混淆和麻煩,例如, http://stackoverflow.com/questions/16658020/public-action-method-was-not-found-on-controller – 2015-04-02 06:55:38

相關問題