8

我的视图中应该有 3 个按钮(添加、保存、取消)。如果我点击这些按钮,它们应该会点击控制器中的相关方法。如何在 MVC3 中实现按钮单击事件?谁能给我一个例子?建议我是否有更好的方法。

4

3 回答 3

9

MVC 3 中没有服务器端按钮单击事件,您需要根据返回的表单值确定单击了哪个按钮。请查看此博客文章以获取更多信息 -

http://weblogs.asp.net/dfindley/archive/2009/05/31/asp-net-mvc-multiple-buttons-in-the-same-form.aspx

于 2011-08-25T16:14:54.370 回答
7

我真的是 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>

这似乎很适合我的需求。

于 2011-08-25T16:28:18.440 回答
1

下面的按钮点击事件命中控制器中的相关 actionResult 方法

      <input type="button" name="button" id="btnadd" value="Add" onclick="location.href='@Url.Action("ActionResultName", "ControllerName")'" >
于 2014-09-04T05:41:10.427 回答