2013-07-29 43 views
0

我有一個對象關係如下:嵌套列表中的MVC 4頁

退款包含優惠券

列表

券包含的訂單項列表

我想打一個MVC頁面這可以允許用戶輸入退款的所有細節,包括填充憑證和訂單項。因此,將會有一個帶有添加按鈕的代金券以將其添加到當前的退款中,並且具有用於將其添加到當前代金券的按鈕的訂單表單的表單

最初我開始制定退款控制器將處理退款,並且其視圖將包含用於輸入憑證數據的部分視圖。該視圖將由憑證控制器處理,並且憑單控制器將負責收集關於每張憑證的信息。

在憑證控制器的視圖將有用於輸入訂單項的局部視圖。這將由訂單項控制器處理。

現在我很新的MVC,也許還沒有得到我的頭完全圍繞它,但我發現有點擔心,這不是做事情的正確方法。例如,當用戶輸入所有行項目詳細信息並提交到Ajax表單時,我認爲它將是處理此事件的行項目控制器。如果我這樣做,我的退款對象不知道任何這種情況,最終目標是將退款對象填充到退款控制器上。

我想將數據從一個控制器傳遞到另一個控制器,或者從另一個控制器的角度調用一個控制器的動作,或者我的添加按鈕應該位於憑證控制器或退款控制器上?任何指針不勝感激

回答

2

從任何視圖中,可以調用從任何控制器的動作。作爲一個例子,所述剃刀ActionLink的助手允許隨着方法名從該控制器通過一個控制器名稱:

@Html.ActionLink("Link text, "Action Name", "Controller Name") 

和一種形式,職位,以不同的控制器比呈現的視圖中的一個:

@Html.BeginForm("Action Name", "Controller Name", FormMethod.Post, new { enctype = "multipart/form-data" })) 
{ 
    // Form fields 
} 

無論你想要做這取決於應用程序的整體設計。創建一個「RefundVoucher」ViewModel可能會更簡單,它將您退款和憑證Models所需的數據封裝起來,併爲此創建一個控制器和強類型視圖。