2013-08-18 67 views
0

我在同一頁面上有兩個相同類型項目的集合,它們當前使用相同的Moustach HTML模板進行呈現。該模板包含一個Remove按鈕。HTML表單模板同一按鈕上的不同命令

問題在於,每個上下文中的Remove需要執行不同的操作(基本上基於當前所處的div)。

我不願意使用兩個模板,我試圖堅持DataContract對象與模板之間的一對一關係,以便始終在UI中顯示一個項目。

表格將通過ajax提交。

處理這個問題的最佳選擇是什麼?

創建另一個模板(真的想避免這樣做)? 爲每個按鈕添加一個類名?

編輯:

鑑於這種類:

public class MyDataContract() 
{ 
    public int Id { get; set; } 
    public string MyString { get; set; } 
} 

Using this template: 

<form id={{Id}} action="/dragsource/action/"> 
    <p>{{MyString}}</p> 
    <input type="button" name='command' value='Remove' /> 
    <input type="button" name='command' value='Save' /> 
</form> 

我加載的MyDataContract兩種不同的列表。

我有兩個<divs>頁面上,因爲參數的緣故稱他們dragsourcedroptarget

表單中的按鈕需要根據它在div來執行兩個不同的東西

如果在模板中的默認操作是這樣的:。

action='/dragsource/action/' 

我在想,我可以在降處理器內部的下跌形態動作更改爲類似:

drop: function(event, ui) { 
    $(ui.draggable).parent().attr('action', '/controllername/droptarget/') 
    $(ui.draggable).appendTo(this); 
} 

然後我的MVC的操作方法可以看起來像:

public ActionResult Droptarget(MyDataContract myDataContract, string command) 
{ 
    if(command = "Remove") 
    { 
     // Do stuff 
    } 
    else 
    { 
     // Do stuff 
    } 
} 

還是有更好的方法來做到這一點嗎?

回答

0

您可以將您在父母的行爲綁定到每個上下文......您能解釋更多關於您的問題嗎?或添加代碼示例?

編輯:

我想你可以創建你的控制器,一個DroptargetRemove和彼此行動DroptargetSave阿賈克斯的行動呼籲。

如果您使用表單提交,您可以更改表單的操作或創建2個表單。

+0

對不起,我應該在第一個地方添加代碼。基於你的評論,我想我可能會得到一個行動計劃('scuse the pun)。如果你能想到一個更好的方式來做到這一點,我會感激你的看法。謝謝。 – Jammer

相關問題