2015-12-09 134 views
1

我有一张允许用户“勾选”或“交叉”出一行的表格。选择行将status值更改为“已批准”,并将其更改为“已拒登”。我目前正在使用编辑脚手架来执行它。我如何在不将用户重定向到视图的情况下执行此操作。我只想让用户点击它并刷新页面,并更新status值。MVC按钮单击执行操作而不重定向

我不确定要在这里发布什么代码,因为我不知道如何编写它。如果我的计划的任何部分是必需的,请让我知道。我将把它包括在这里。谢谢:>

+0

您可以使用Ajax发布更新的值,它保存到数据库中的控制方法,并在成功回调,更新DOM。 –

回答

0
  1. 将css类添加到2个按钮“approve-btn”和“reject-btn”。
  2. 创建JavaScript函数来批准和拒绝并将其绑定到 2类
  3. 创建2个后端功能从JS功能
  4. 使得Ajax调用传递该行项目的ID后端功能
  5. 在“成功:” Ajax调用的管理状态的改变,以显示“批准”或“拒绝”

为了使Ajax调用,您可以用下面的例子(尽管有万吨例如在谷歌的) 。由于您正在修改数据,因此您应该使用POST调用,并且由于它是POST调用,因此应该添加RequestVerificationToken以防止CSRF攻击。

function Approve(id){ 
    securityToken = $('[name=__RequestVerificationToken]').val(); 
    $.ajax({ 
     url: '/YourControllerName/Approve/' + itemId, 
     type: 'POST', 
     data: { 
      "__RequestVerificationToken": securityToken 
     }, 
     success: function (data) { 
      if (data == 'success') 
       //use jQuery to show the approved message; 
      else 
       alert("something went wrong");     
     }, 
     error: function (request, err) { 
      alert("something went wrong"); 
     } 
    }); 
} 

的令牌应在查看加入这一行创建:

@Html.AntiForgeryToken() 
+0

如何从JS函数调用ajax调用? :噢抱歉,因为我刚刚开始MVC,我不熟悉Javascript –

相关问题