asp.net-mvc – 如何根据接受的HTTP动词重载ASP.NET MVC操作?

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 如何根据接受的HTTP动词重载ASP.NET MVC操作?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
想要为基于REST的API使用相同的URL作为GET / PUT / DELETE / POST,但是当唯一不同的操作是它接受的HTTP动词时,它认为它们是重复的!

“类型已经使用相同的参数类型定义了一个名为”Index“的成员。

我说的是什么?这个只接受GET,这个只接受POST?应该能够共存吗?

怎么样?

解决方法

这不是ASP.NET MVC限制或其他。它是.NET和类如何工作:无论你尝试多么努力,你不能在同一个类上使用相同名称的两个方法。您可以使用 [ActionName]属性作弊:
[HttpGet]
[ActionName("Foo")]
public ActionResult GetMe()
{
   ...
}

[HttpPut]
[ActionName("Foo")]
public ActionResult PutMe()
{
   ...
}

[HttpDelete]
[ActionName("Foo")]
public ActionResult DeleteMe()
{
   ...
}

[HttpPost]
[ActionName("Foo")]
public ActionResult PostMe()
{
   ...
}

当然,在一个真正的RESTFul应用程序中,不同的动词也会采用不同的参数,所以你很少有这样的情况。

您可以查看SimplyRestful了解有关如何组织路线的一些想法。

猜你在找的asp.Net相关文章