2011-08-26 68 views
1

我在控制器內部有2個操作方法。發佈數據到操作方法MVC2.0

public ActionResult SelectOrders() 
{ 
    return View(); 
} 

public ActionResult ProcessOrders(String OrderNos) 
{ 
return View(); 
} 

在SelectOrders視圖,用戶將選擇訂單ID,當他點擊提交,選擇訂單號真讓ProcessOrders視圖中顯示。目前,我將選定的acc數字存儲在Javascript數組中,並將查詢字符串傳遞給ProcessOrders視圖(Window.href)。我相信這不是完成這項工作的最佳方式,因爲用戶可以選擇超過100-200個訂單。處理此功能的其他可能/最佳方式是什麼?

+0

是數量級的動態或總是一樣的嗎? – cpoDesign

+0

訂單隻會在頁面中加載一次。 – RRForUI

回答

0

你想使用的是模型。 這將是我的解決方案。

定義實體的訂單

public class OrderItem{ 
public int Id{get;set;} 
public string Name{get;set;} 
} 

收集訂單,以酒吧爲選擇訂單

public class SelectOrdersModel{ 
public IEnumerable<OrderItem> Orders{get;set;} 
} 

現在修改你的控制器:

public ActionResult SelectOrders(SelectOrdersModel model) 
{ 
SelectOrdersModel modelToDisplay = (model==null)? new SelectOrdersModel():model; 
//populate model here 
return View(modelToDisplay); 
} 

,並獲取數據:

public ActionResult ProcessOrders(SelectOrdersModel model) 
{ 
// process your model here 

if(!ModelState.IsValid)return RedirectToAction(「SelectOrders」,model); //重定向或做你的邏輯在這裏 }

重定向形式,你會做如:

<% using(Html.BeginForm("ActionName")) 
    { 
     //your form data here 
    }%> 
+0

感謝cpoDesign。但是這裏有兩個問題。 1)我的理解是,當您選擇訂單並提交表單(SelectOrders)時,它將被提交給SelectOrders操作方法,而不是ProcessOrders Action方法。我們可以從第一個Action方法提交給第二個2)我們如何在View上將所選定單存儲在模型中?這些訂單在表格中通過與其關聯的複選框呈現。 – RRForUI

+0

謝謝,我會試試這個。 – RRForUI