1

私は MVC 2 を使用しており、コントローラー メソッドへの ajax 呼び出しを行おうとしています。

コントローラ:

        [HttpGet]
        public ActionResult FirstAjax()
        {
            return View();
        }

        [HttpPost]
        public ActionResult FirstAjax(string a)
        {

            return Json("chamara", JsonRequestBehavior.AllowGet);

        }

意見:

<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {

            var serviceURL = '<%= Url.Action("FirstAjax", "AjaxTest") %>';

            $.ajax({
                type: "POST",
                url: serviceURL,
                data: param = "",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: successFunc,
                error: errorFunc
            });

            function successFunc(data, status) {

                alert(data);


            }

            function errorFunc() {
                alert('error');
            }
        });
    </script>
</head>

上記のコードで、私のコントローラーに注目してください。コードを機能させるには、HTTPPOSTHTTPGETを使用してメソッドに追加する必要がありましたが、パラメータ a が関連していなくても、同じ署名を持つ 2 つのメソッドを追加できないため、追加しました。

これはこれを行う正しい方法ではないかもしれないと思います。この種のコードに最適なアプローチを説明してください。

アップデート:

POST と GET を使用せずに単一のメソッドを追加しても機能しません。ページに文字列「chamara」を出力するだけです。アラートが発生しません

 public ActionResult FirstAjax()
        {

            return Json("chamara", JsonRequestBehavior.AllowGet);

        }
4

2 に答える 2

0

同じ名前と署名を持つ 2 つのメソッドを持つことはできないため、ActionName 属性を使用する必要があります。

アップデート:

[HttpGet]
    public ActionResult FirstAjax()
    {
        Some Code--Some Code---Some Code
        return View();
    }

    [HttpPost]
    [ActionName("FirstAjax")]
    public ActionResult FirstAjaxPost()
    {
        Some Code--Some Code---Some Code
        return View();
    }

メソッドがアクションになる方法の詳細については、このリンクを参照してください。非常に良い参考書ですが。

于 2013-04-25T03:54:39.073 に答える
0

あなたの説明から、必要なコードは次のようなものだと思います:

AjaxTestController.cs

[HttpGet]          
public ActionResult FirstAjax()
{
     return Json("chamara", JsonRequestBehavior.AllowGet);
}    

脚本:

<script type="text/javascript">
      $(document).ready(function () {

      var serviceURL = '<%= Url.Action("FirstAjax", "AjaxTest") %>';

      $.ajax({
           type: "GET",
           url: serviceURL,               
           success: successFunc,
           error: errorFunc
      });

      function successFunc(data) {           
           alert(data);
      }

      function errorFunc(xhr, status, err) {            
           alert('error');
      }

      });
</script>
于 2013-04-25T03:56:48.653 に答える