はい、できます。個別の 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 ファイルを使用します。