ユーザー作成ページがあります。現在、システム内のすべての現在のユーザーを含むテーブルがリストされています。新しい作成ボタンをクリックできます-これは、コントローラーメソッドを呼び出して部分ビューを返し、すべてのフィールド、つまり名、姓などを含む新しいモーダルjQueryダイアログボックスをロードするjQuery ajax送信を行います。背景とこのダイアログ ボックスがモーダル ビューの画面の中央にあるため、優先されます。ユーザー名をクリックすると、同じメソッドが呼び出され、一意のユーザー ID が渡されるため、ダイアログ フォームは空白で読み込まれません。DB からユーザーの現在の詳細が読み込まれ、ユーザー ID として [削除] ボタンがありました。新規作成時にある保存とキャンセルだけでなく、ユーザーダイアログボックスにも追加されます。
問題について-以下のように部分ビューページを囲みました-ユーザーが行ったいくつかの選択に基づいて差分ドロップダウンボックスを表示/非表示にする必要があるため、部分ビューに独自のjsも追加しました。
@using (Html.BeginForm("UserAction", "Admin", FormMethod.Post, new { id = "userActionForm" }))
{
//Fields on the dialog box....
}
次にダイアログボックスに-ボタンがあります
<input id="DoDeleteUser" type="button" class="dialog-button" value="Delete User" style="margin: 5px" />
そして、私のページのJSファイルには次のものがあります:
$('#DoDeleteUser').click(function (event) {
//alert("Delete Button Pressed"); - In for debugging
$('#userID').val($(event.target).attr("userId")); - get id value into hidden field on page
$('action').val('Delete'); - put action string into hidden field on page
$('#userActionForm).submit();
});
$('#userActionForm').submit(function () {
var formData = $("#userActionForm").serializeArray();
$.ajax({
url: this.action,
type: this.method,
data: formData,
success: function (result) {
$('#dialogContainer').html(result);
}
});
return false;
});
私のダイアログコンテナは、最初のページが読み込まれるのと同じコンテナであり、UserAction メソッドから戻ったときに「ユーザーが更新されました」または「ユーザーが削除されました」という単純なメッセージと、クリックすると全体が更新される [OK] ボタンで更新したいものです。ページ(メインテーブルが更新されるように)
次に、コントローラーに次のようなメソッドがあります。
public ActionResult UserAction(UserModel model)
{
if (ModelState.IsValid)
{
if(model.Action == "Delete")
//Go and do delete
return PartialView ("UserActionSuccess", model);
//close if etc etc
ただし、コントローラーの UserAction メソッドにブレークポイントを設定しましたが、[ユーザーの削除] ボタンまたは [ユーザーの保存] ボタンを押してもヒットしません。