33 Stimmen

Mixen Sie Web-API-Controller und Seitencontroller

Ich probiere gerade mit der neuen Web-API in MVC 4 Beta herum und füge einige neue API-Controller zu meiner bestehenden MVC-Website hinzu. Das Problem ist, dass ich die Web-API-Controller nicht gleich benennen kann wie meine bestehenden Controller. Im Moment habe ich ihnen Namen wie ProductApiController gegeben, aber das ist nicht sehr restlich. Welche ist eine gute Strategie für die Namensgebung dieser neuen Controller, wenn sie zu einer bestehenden MVC-Site hinzugefügt werden?

54voto

Darin Dimitrov Punkte 990883

Das Problem ist, dass ich die Web-API-Controller nicht gleich benennen kann wie meine vorhandenen Controller.

Sie könnten Ihre API-Controller mit dem gleichen Namen wie Ihre vorhandenen Controller haben. Platzieren Sie sie einfach in einem anderen Namespace, um den Compiler zufriedenzustellen.

Beispiel:

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

und der API-Controller:

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

und dann haben Sie: /products und /api/products jeweils zur Verfügung.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X