混合web api控制器和站点控制器

时间:2012-02-19 21:30:25

标签: .net asp.net-mvc asp.net-web-api

我在mvc 4 beta中使用新的wep api并在我现有的mvc网站上添加了一些新的api控制器。问题是我无法将web api控制器命名为与现有控制器相同。现在我已经给了他们像ProductApiController这样的名字,但这并不是很像。将这些新控制器添加到现有mvc站点时,对这些新控制器进行名称设置的好策略是什么?

1 个答案:

答案 0 :(得分:54)

  

问题是我无法将web api控制器命名为与现有控制器相同。

您可以让API控制器与现有控制器同名。只需将它们放在不同的命名空间中即可使编译器满意。

示例:

namespace MyAppName.Controllers
{
    public class ProductsController: Controller
    {
        public ActionResult Index()
        {
            var products = productsRepository.GetProducts();
            return View(products);
        }
    }
}

和API控制器:

namespace MyAppName.Controllers.Api
{
    public class ProductsController: ApiController
    {
        public IEnumerable<Product> Get()
        {
            return productsRepository.GetProducts();
        }
    }
}

然后您分别使用:/products/api/products