我在同一页面上有两个相同类型的项目集合,它们当前使用相同的 Moustach HTML 模板进行呈现。该模板包含一个Remove
按钮。
问题是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
}
}
还是有更好的简洁方法来做到这一点?