MVC3 как минимизировать количество контроллеров - PullRequest
3 голосов
/ 20 марта 2012

Я новичок в MVC3, и нашему проекту нужно что-то вроде:

http://www.abc.com/product_1/product_1_subpage/... http://www.abc.com/product_2/product_2_subpage/...

сейчас у меня product_1 в качестве контроллера; product_1_subpage как действие этого контроллера, однако, подумайте о том, что у меня более 100 различных продуктов, я не могу продолжать создавать более 100 контроллеров для каждого отдельного продукта, мне нужно что-то сделать в этой структуре, любая идея?

Большое спасибо за вашу помощь, очень ценю любой вклад.

Ответы [ 3 ]

2 голосов
/ 20 марта 2012

Возможно, вы захотите иметь только один Контроллер под названием Продукты для всех ваших продуктов вместо того, чтобы добавлять новый контроллер для каждого продукта.

При использовании пользовательских маршрутов или маршрутизации по умолчанию, вы все равно сможете создавать отдельные ссылки для отдельных продуктов. Кроме того, если бы вы использовали свой подход с новым контроллером для каждого продукта (чего на самом деле не следует!), Вам придется перекомпилировать и развертывать приложение каждый раз, когда вы захотите добавить другой продукт - который будет боль поддерживать.

Похоже, вам следует взглянуть на учебные пособия по MVC , предоставленные командой .Net, чтобы получить общее представление о MVC и о том, как об этом думать.

1 голос
/ 20 марта 2012

Использовать пользовательские маршруты:

routes.MapRoute(
            "ProductsRoute", // Route name
            "products/{productName}/{subName}/{id}", // URL with parameters
            new { controller = "Product", action = "View", id = UrlParameter.Optional } // Parameter defaults
        );

Это сделало бы следующую работу:

public class ProductController : Controller
{
    // http://yourweb/products/goggles/xray/Elite2000
    public ActionResult View(string productName, string subName, string id)
    {
    }
}
0 голосов
/ 20 марта 2012

как насчет того, чтобы немного изменить формат URL, чтобы воспользоваться преимуществами маршрутизации:

http://www.abc.com/product/subpage/1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...