0

mvc3 の javascript とともに、さまざまなボタンを使用して、mvc3 の単一ビューで crud 操作を処理したいと考えています。

実際には、アカウント コードと説明フィールドを含むビューがあります。wcf サービスを使用して、SQL Server 2008 R2 データベースにレコードを追加、編集、削除したいと考えています。クライアント側のスクリプトに JavaScript を使用したいと考えています。javascriptのボタンクリックイベントでコントローラーのメソッドを呼び出したい。

どうすればいいのか教えてください。

現在、次のJavaScript関数があります。

$(document).ready(function () {
var today = new Date();
var dd = today.getDate();

$('#sve').click(function () {
    var person = { AcCode: $('#AcCode').val(), Descrip: $('#Descrip').val(), AddOn: dd };
    $.ajax({
        url: '/Home/Save',
        type: "POST",
        data: JSON.stringify(person),
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        success: function (result) {
            //   $('#message').html('Record saved successfully' + result).fadeIn();
            alert("Record saved successfully");
        },
        error: function () {
            //    $('#message').html('Error Occurred').fadeIn(); 
            alert("Record not saved successfully");
        }
    });
    return false;
});
});

以下は、保存ボタンのコントローラーコードです

 [Authorize]
     // [Authorize(Roles = "Administrators")] 
     [HttpPost]
     [MultiButton(MatchFormKey = "action", MatchFormValue = "Save")]
            public ActionResult Save(AccntBD model)
     {
         CBSWCF.Account useInfo = new CBSWCF.Account();
         if (ModelState.IsValid)
         {
             if (!model.IsAcCodeExist(model.AcCode))
             {
                 string ObjUser = User.Identity.Name;
                 string ObjUid = string.Empty;
                   AcntEnt.AcCode = model.AcCode;
                 AcntEnt.Descrip = model.Descrip;
                  objSvc.ACodeSave2(AcntEnt);
                              }
             else
             {
                 ModelState.AddModelError("CustomError", "Account Code Already Exist");
             }
         }
         else
         {
             ModelState.AddModelError("", "");
         }
         return View(model);
     }

次のコードを使用して、単一のビューで複数のボタンを使用します。[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)] public class MultiButtonAttribute : ActionNameSelectorAttribute { public string MatchFormKey { get; 設定; } パブリック文字列 MatchFormValue { get; 設定; }

    public override bool IsValidName(ControllerContext controllerContext, string actionName, MethodInfo methodInfo)
    {
        return controllerContext.HttpContext.Request[MatchFormKey] != null &&
            controllerContext.HttpContext.Request[MatchFormKey] == MatchFormValue;
    }
}

今の問題は、保存機能がJavaScriptからヒットせず、メッセージが正常に保存されなかったことです。誰でも私を助けてくれませんか

4

1 に答える 1