3

我想知道,在 WebMatrix Razor 语法中使用 Ajax 在同一页面中进行 CRUD 操作(更新-编辑-插入)的最快和安全方法是什么。是否可以在没有 GET-POST 网络服务或其他 razor 页面的情况下使用 ajax 在同一个 razor 页面中执行此 CRUD 操作?

我尝试使用 jquery ajax 从其他具有输出类型 Json 的 Razor 页面获取数据,并使用 WCF Webservice。但他们并没有真正让我满意,因为我需要另一个页面来提供我的数据。

4

1 回答 1

3

是的,你可以这样做。每个单独的 CRUD 操作都必须包装在自己的条件块中。该条件可以测试特定名称/值对是否已通过 AJAX(例如action=deleteaction=update)发送到服务器。将值返回给 AJAX 调用时,请确保ContentType正确设置了 Response。

这是一个工作示例 -

@{
    if(IsAjax){
        switch(Request["action"]){
            case "create" :
                Response.Write("You are trying to create something");
                Response.End();
                break;
            case "read" :
                Response.Write("What would you like to read?");
                Response.End();
                break;
            case "update" :
                Response.Write("Something is being updated");
                Response.End();
                break;
            case "delete" :
                Response.Write("This is a delete");
                Response.End();
                break;
        }
    }
}

<!DOCTYPE html>

<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title></title>
        <script src="~/Scripts/jquery-1.8.3.min.js" type="text/javascript"></script>
        <script>
            $(function () {
                $('.crud').click(function () {
                    $.get('/SinglePage/?action=' + $(this).attr('id'), function (message) {
                        alert(message);
                    })
                })
            })
        </script>
    </head>
    <body>
        <button id="create" class="crud">Create</button>
        <button id="read" class="crud">Read</button>
        <button id="update" class="crud">Update</button>
        <button id="delete" class="crud">Delete</button>
    </body>
</html>

如果有的话,这说明了这种方法在维护等方面可能有多糟糕。我自己总是为每个数据操作使用单独的 cshtml 文件,

于 2013-01-30T21:11:41.430 回答