Передать значение из одного контроллера в другой в asp.net mvc - PullRequest
0 голосов
/ 09 июня 2011

Я новичок в ASP.NET MVC. Это то, что я делаю. У меня есть 2 контроллера: дом и обслуживание клиентов. Теперь у меня есть список клиентов, где, когда я нажимаю на детали, он перенаправляется на приобретенные им продукты. Итак, мне нужно передать идентификатор, чтобы продукты этого клиента могли быть показаны. Итак, мой дом состоит из данных клиента. Теперь мне нужно передать этот идентификатор контроллеру CustomerService, действие Index. Вот что я сделал в доме:

  public ActionResult Customers()
    {
        var dc = new ServicesDataContext();
        var query = (from m in dc.Customers
                     select m);


        return View(query);
    }

    public ActionResult Details(int id)
    {
        var datacontext = new ServicesDataContext();
        var serviceToUpdate = datacontext.Customers.First(m => m.CustomerId == id);


        ViewData.Model = serviceToUpdate;
       // return View();
        return Redirect("/CustomerService");

    }
    [HttpPost]
    public ActionResult Details(FormCollection form)
    {
        var id = Int32.Parse(form["CustomerID"]);
        var datacontext = new ServicesDataContext();
        var service = datacontext.Customers.First(m => m.CustomerId == id);
        return Redirect("Customers");

    }
}

Теперь я не уверен, нужно ли мне передавать id в качестве параметра для индекса в CustomerService. Так что вы можете, пожалуйста, направить меня в этом?

Ответы [ 2 ]

2 голосов
/ 09 июня 2011

Если вы используете любой Redirect (например, RedirectToAction), вы можете использовать TempData для хранения любых параметров.Семантика слегка изменилась в MVC 3, но TempData предназначен для передачи данных между действиями в сценарии POST-Redirect-GET.

1 голос
/ 09 июня 2011

Передача его в качестве параметра, вероятно, является вашим лучшим вариантом. Попробуйте использовать что-то вроде return RedirectToAction(ActionName, ControllerName, RouteValues);.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...