我在同一頁面上有兩個相同類型項目的集合,它們當前使用相同的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>
頁面上,因爲參數的緣故稱他們dragsource
和droptarget
。
表單中的按鈕需要根據它在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
}
}
還是有更好的方法來做到這一點嗎?
對不起,我應該在第一個地方添加代碼。基於你的評論,我想我可能會得到一個行動計劃('scuse the pun)。如果你能想到一個更好的方式來做到這一點,我會感激你的看法。謝謝。 – Jammer