2016-12-16 78 views
0

我從另一個開發繼承下面的代碼我試圖去理解它,什麼做square brackets []立場?爲什麼有的有「HttpPost」和一些「HTTPGET」MVC路由屬性方括號

namespace webService.Controllers.Scheduler 
{ 
    public class testbedsController : EntityController<testbedsService, testbeds> 
    { 
     testbedsService p = new testbedsService(); 
     [Route("api/testbeds/")] 
     [HttpPost] 
     public testbeds AddOrUpdate(testbeds testbedsInformation) 
     { 
      try 
      { 

       return p.AddOrUpdate(testbedsInformation); 
      } 
      catch (Exception e) 
      {     
       throw new Exception(e.ToString()); 
      } 
     } 
} 
+0

它的一個[屬性] (http://stackoverflow.com/questions/20346/net-what-are-attributes) –

+0

圍繞它的方括號的意義是什麼?是否有一個或它的正義語法?爲什麼有些人有'HttpPost'和一些' HttpGet' – user3508811

+1

這就是編譯器知道它的一個屬性(應用於該方法的元數據)。和[HttpGet](https://msdn.microsoft.com/en-us/library/system.web.mvc.httpgetattribute(v = vs.118).aspx)和[HttpPost](https://msdn.microsoft .com/en-us/library/system.web.mvc.httppostattribute(v = vs.118).aspx)是確定該方法是否可以作爲get或post調用的過濾器屬性。 –

回答

1

方括號表示C#「屬性」。它們可以指定關於諸如方法的其他數據。在這裏看到更多的信息:Attributes in C#

HttpGetHttpPost,並Route屬性(等等)可以指定如下:

  1. 您使用調用MVC操作方法
  2. 允許的HTTP網址用於MVC的操作方法

方法在這種特定的情況下:

  • [Route("api/testbeds/")] - >這指定此操作的URL爲api/testbeds/,因此您可以通過http://my-server/api/testbeds/訪問此操作。
  • [HttpPost] - >這不指定URL,但它指定只HTTP 「POST」 動詞被允許(這樣沒有GET,PUT,DELETE等)