Как я могу выбрать значение параметра маршрута по умолчанию, когда пользователь не выбирает конкретную опцию? - PullRequest
0 голосов
/ 13 марта 2012

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

http://localhost/AwesomeSite/123456/Orders

приводит к методу контроллера (OrdersController):

public ActionResult Index(int customerNumber)
{
    var result = from o in orderRepository
                 where o.customerNumber == customerNumber
                 select o;

    return View(result);
}

Как я могу быть абсолютно уверен, что если пользователь не выберет определенного клиента, чтобы я мог указать значение маршрута по умолчанию для customerNumber, которое соответствует (может быть) customerNumber первого клиента в их списке?

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

1 Ответ

0 голосов
/ 13 марта 2012

Вы можете написать пользовательский механизм связывания модели (IModelBinder) для объекта Customer, в котором вы будете использовать параметр маршрута customerNumber, чтобы выбрать данного клиента и проверить, принадлежит ли он текущему вошедшему в систему пользователю (который вы получите из параметр ControllerContext, который передается методу Bind, который вы будете реализовывать). Если это не просто вернуть первого клиента данного пользователя. А потом:

public ActionResult Index(Customer customer)
{
    return View(customer);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...