我是ASP.NET MVC的新手。这就是我正在做的事情。我有两个控制器:家庭和客户服务。 现在我有一个客户列表,当我点击详细信息被重定向到他获得的产品时。 所以,我需要传入id,以便显示该客户的产品。所以,我家包含客户详细信息。现在我需要将该id传递给CustomerService控制器,Index action。这就是我在家里所做的:
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");
}
}
现在我不确定是否需要在CustomerService中传递id作为索引的参数。你可以指导我完成这个吗?
答案 0 :(得分:2)
如果您使用任何Redirect
(例如RedirectToAction
),则可以使用TempData
存储任何参数。 MVC 3中的语义略有变化,但TempData
旨在在POST-Redirect-GET场景中的操作之间传递数据。
答案 1 :(得分:1)
将其作为参数传递可能是您的最佳选择。尝试使用类似return RedirectToAction(ActionName, ControllerName, RouteValues);
的内容。