Tôi muốn chuyển hướng từ một hành động trong một bộ điều khiển đến một hành động trong bộ điều khiển thứ hai. Thông thường tôi sẽ sử dụng RedirectToAction ("actionName", "controllerName", các đối tượng); Phương pháp tôi muốn chuyển hướng đến có hai quá tải:Chuyển hướng đến hành động trong bộ điều khiển khác
- Một cho HttpVerbs.Get được sử dụng để trực tiếp liên kết
- Một cho HttpVerbs.Post chấp nhận các loại tài liệu tham khảo mà có được đầy qua modelbinding
Khi tôi thực hiện chuyển hướng bằng phương thức RedirectToAction, tôi được chuyển hướng đến phương thức GET theo mặc định, khóa học không phù hợp với tham số của tôi.
Làm cách nào để đảm bảo rằng nó chuyển hướng đến tình trạng quá tải của hành động chính xác?
--EDIT--
Theo yêu cầu một số chi tiết cụ thể hơn:
Hành động Tôi muốn chuyển hướng đến lấp đầy ViewData dựa trên các thông số và sau đó gọi là cái nhìn đúng đắn.
public ActionResult OverView(SearchBag searchBag, IngredientBag ingredientBag) {
Nó có một phiên bản thứ hai cho Gets để nó có thể hoạt động bằng cách GET quá:
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult OverView(int colorId, string paintCode, string name, int formulaId) {
return OverView(new SearchBag()
{ ColorId = colorId, PaintCode = paintCode, ColorName = name, FormulaId = formulaId }
, formulaViewData.IngredientBag);
}
Người Tôi đang gọi hiện đang ở một bộ điều khiển khác nhau. Nó thực hiện một số tính toán trước, tìm nạp thông tin cần thiết và sau đó thực hiện chính xác điều tương tự như các hành động trước đó. Tôi có thể tái tạo mã từ hành động đầu tiên, nhưng tôi chỉ muốn gọi hành động đó.
[AcceptVerbs(HttpVerbs.Post)]
public RedirectToRouteResult ReCalculate(SearchBag searchBag, IngredientBag ingredientBag) {
Tôi có thể tạo phiên bản cục bộ tạm thời của bộ điều khiển tiếp theo đó, nhưng tôi nhận thấy nó không có đúng HTTPContext và không nhấn phương thức khởi tạo.
Bạn có thể đặt nhiều động từ vào một hành động như thế này [AcceptVerbs (HttpVerbs.Post | HttpVerbs.Get)] –
Vì vậy, bạn đang cố gắng RedirectToAction từ hành động ReCalculate đến hành động OverView? –
có. Và kể từ khi tôi lấy tất cả các đối tượng của tôi và tính toán lại chúng trong ReCalculate, tôi không muốn phải làm điều đó một lần nữa trong hành động Tổng quan của tôi –