0

我想要一个类似下面的屏幕:

   <div id="statusText></div> 

   <button type="button" id="transferData1"
       data-href="/Tools/Data/TransferData1">Transfer Data 1</button>
   <button type="button" id="transferData2"
       data-href="/Tools/Data/TransferData2">Transfer Data 2</button>
   <button type="button" id="transferData3"
       data-href="/Tools/Data/TransferData3">Transfer Data 3</button>

单击每个按钮时都会调用 MVC 操作方法,然后让它返回一些状态。当我有多个按钮时,是否有一种简单的方法可以使用 jQuery、Ajax 和 JSON 进行设置?

到目前为止,我有以下脚本:

<script type="text/javascript">
    $(document).ready(function () {
        $('#transferData')
            .click(function () {
                xxx
            });

    });
</script>

但是我怎样才能使这个脚本适用于不同的按钮 ID 并使用 Ajax 调用不同的操作方法呢?

4

2 回答 2

2

There's a couple of options

1) use a form, give each button a value and differentiate which button was pushed server side by looking at the value posted back for that button. There's a a nice way to clean this up/split into multiple server side actions by using ActionFilters (http://www.dotnetcurry.com/ShowArticle.aspx?ID=724). If it needs to be ajax then you could use the unobtrusive ajax extensions in mvc3.

2) use jquery to override the click method of the buttons, call the action manually then use the result

$('[data-href]').click(function() { 
  $.ajax({ url: $(this).attr('data-href') })
    .success(function(data) {});
});
于 2012-05-19T06:07:38.200 回答
0

如果您想知道该过程,那么我认为最简单和最合适的方法是将每个按钮绑定到表单,如果您还想发布一些值,否则不需要它。form1 for button1 form2 for button2 and form3 for button3 。从那里开始事情应该很容易。

每个按钮都有一个 jquery 按钮单击事件,有一个单一的操作方法,将按钮名称传递给操作方法,并根据按钮名称处理请求并返回 json 结果。

于 2012-05-19T06:15:09.910 回答