【发布时间】:2011-08-25 16:08:34
【问题描述】:
我的视图中应该有 3 个按钮(添加、保存、取消)。如果我点击这些按钮,它们应该会点击控制器中的相关方法。如何在 MVC3 中实现按钮单击事件?谁能给我一个例子?建议我是否有更好的方法。
【问题讨论】:
我的视图中应该有 3 个按钮(添加、保存、取消)。如果我点击这些按钮,它们应该会点击控制器中的相关方法。如何在 MVC3 中实现按钮单击事件?谁能给我一个例子?建议我是否有更好的方法。
【问题讨论】:
在 MVC 3 中没有服务器端按钮单击事件,您需要根据返回的表单值确定单击了哪个按钮。请查看此博客文章以获取更多信息 -
【讨论】:
我真的是 ASP.NET MVC 的新手,但我解决这个问题的一种方法是,我在表单上有几个按钮,并给每个按钮一个类,然后为它们指定数据参数,在这个例如,第一个按钮的某些项目 Val1 和 Val2 有两个属性,第二个按钮有两个属性 - Val1 和 Val3:
<input type="button" value="Button 1" class='button1' data-val1="@item.Val1" data-val2="@item.Val2"/>
<input type="button" value="Button 2" class='button2' data-val1="@item.Val1" data-val2="@item.Val3"/>
然后我使用一些 jquery 来处理点击事件并指定要调用的操作:
<script type="text/javascript">
$(function () {
$('.button1').click(function () {
var Val1 = $(this).data('val1');
var Val2 = $(this).data('val2');
$.ajax({
type: "POST",
data: "val1=" + Val1 + "&val2=" + Val2,
url: '@Url.Action("MyAction", "MyController")',
dataTyp: "html",
success: function (result) {
// whatever I did here on success
}
});
});
});
// rinse and repeat for the other button, changing the parameters and the action called.
</script>
这似乎很适合我的需求。
【讨论】:
<input type="button" name="button" id="btnadd" value="Add" onclick="location.href='@Url.Action("ActionResultName", "ControllerName")'" >
【讨论】: