我想知道,在 WebMatrix Razor 语法中使用 Ajax 在同一页面中进行 CRUD 操作(更新-编辑-插入)的最快和安全方法是什么。是否可以在没有 GET-POST 网络服务或其他 razor 页面的情况下使用 ajax 在同一个 razor 页面中执行此 CRUD 操作?
我尝试使用 jquery ajax 从其他具有输出类型 Json 的 Razor 页面获取数据,并使用 WCF Webservice。但他们并没有真正让我满意,因为我需要另一个页面来提供我的数据。
我想知道,在 WebMatrix Razor 语法中使用 Ajax 在同一页面中进行 CRUD 操作(更新-编辑-插入)的最快和安全方法是什么。是否可以在没有 GET-POST 网络服务或其他 razor 页面的情况下使用 ajax 在同一个 razor 页面中执行此 CRUD 操作?
我尝试使用 jquery ajax 从其他具有输出类型 Json 的 Razor 页面获取数据,并使用 WCF Webservice。但他们并没有真正让我满意,因为我需要另一个页面来提供我的数据。
是的,你可以这样做。每个单独的 CRUD 操作都必须包装在自己的条件块中。该条件可以测试特定名称/值对是否已通过 AJAX(例如action=delete
或action=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 文件,