Asp.net-Mvc

使用相同的方法簽名發布和獲取

  • April 7, 2009

在我的控制器中,我有兩個稱為“朋友”的動作。執行的取決於它是“獲取”還是“發布”。

所以我的程式碼片段看起來像這樣:

// Get:
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Friends()
{
   // do some stuff
   return View();
}

// Post:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Friends()
{
   // do some stuff
   return View();
}

但是,這不會編譯,因為我有兩個具有相同簽名的方法(朋友)。我該如何去創造這個?我是否只需要創建一個操作,但要區分其中的“獲取”和“發布”?如果是這樣,我該怎麼做?

將第二種方法重命名為“Friends_Post”之類的其他名稱,然後您可以為第二種方法添加[ActionName("Friends")]屬性。因此,請求類型為 POST 的 Friend 操作的請求將由該操作處理。

// Get:
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Friends()
{
   // do some stuff
   return View();
}

// Post:
[ActionName("Friends")]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Friends_Post()
{
   // do some stuff
   return View();
}

引用自:https://stackoverflow.com/questions/724386