【问题标题】:MVC Button Click performs action without redirectingMVC 按钮单击执行操作而不重定向
【发布时间】:2016-03-14 11:46:40
【问题描述】:

我有一张表格,允许用户在其中“打勾”或“划掉”一行。勾选一行会将status 值更改为“已批准”,然后将其更改为“未批准”。我目前正在使用 Edit 脚手架来执行它。如何在不将用户重定向到视图的情况下执行此操作。我只希望用户单击它并刷新页面,同时更新 status 值。

我也不确定在这里发布什么代码,因为我不知道如何编写它。如果需要我的程序的任何部分,请告诉我。我会把它包括在这里。谢谢:>

【问题讨论】:

  • 您可以使用 ajax 将更新后的值发布到将其保存到数据库的控制器方法中,并在成功回调中更新 DOM。

标签: asp.net-mvc edit buttonclick


【解决方案1】:
  1. 为“approve-btn”和“reject-btn”这两个按钮添加 css 类。
  2. 创建 javascript 函数来批准和拒绝并将它们绑定到 2 类
  3. 创建 2 个后端函数
  4. 从 JS 函数向后端函数进行 ajax 调用,并传递行项的 id
  5. 在 ajax 调用的“成功:”中管理状态更改以显示“已批准”或“已拒绝”

要进行 ajax 调用,您可以使用以下示例(尽管 google 上有大量示例)。由于您正在修改数据,因此您应该使用 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()

【讨论】:

  • 如何从 JS 函数进行 ajax 调用? :O 对不起,因为我刚开始 MVC,我不熟悉 Javascript
猜你喜欢
  • 1970-01-01
  • 2022-12-02
  • 2023-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-15
  • 1970-01-01
相关资源
最近更新 更多