33

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

4

1 回答 1

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分别使用。

于 2012-02-19T22:20:34.897 回答