복붙노트

[JQUERY] asp.net MVC에서 컨트롤러에 대한 간단한 Ajax 호출 만들기

JQUERY

asp.net MVC에서 컨트롤러에 대한 간단한 Ajax 호출 만들기

해결법


  1. 1.업데이트 후에는 수행 한

    업데이트 후에는 수행 한

    이전 만 어떤 HTML 렌더링없이 브라우저에 JSON을 반환했다. 지금은 당신의 JSON 데이터를 얻을 수 렌더링 된 HTML보기가 있습니다.

    직접 JSON에게 그것의 일반 데이터하지 HTML을 렌더링 할 수 없습니다.


  2. 2.서버에 아무것도 게시하지 않는 한 데이터 속성을 제거합니다 (컨트롤러는 매개 변수를 기대하지 않습니다).

    서버에 아무것도 게시하지 않는 한 데이터 속성을 제거합니다 (컨트롤러는 매개 변수를 기대하지 않습니다).

    그리고 당신의 AJAX 방법에 당신은 오히려 정적 문자열보다 Url.Action @ 면도기 사용을 사용할 수 있습니다 :

    $.ajax({
        url: '@Url.Action("FirstAjax", "AjaxTest")',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: successFunc,
        error: errorFunc
    });
    

    당신의 업데이 트에서 :

    $.ajax({
        type: "POST",
        url: '@Url.Action("FirstAjax", "AjaxTest")',
        contentType: "application/json; charset=utf-8",
        data: { a: "testing" },
        dataType: "json",
        success: function() { alert('Success'); },
        error: errorFunc
    });
    

  3. 3.동적으로이 같은 액션을 호출하여 URL을 변경하기 위해 면도기를 사용합니다 :

    동적으로이 같은 액션을 호출하여 URL을 변경하기 위해 면도기를 사용합니다 :

    $.ajax({
        type: "POST",
        url: '@Url.Action("ActionName", "ControllerName")',
        contentType: "application/json; charset=utf-8",
        data: { data: "yourdata" },
        dataType: "json",
        success: function(recData) { alert('Success'); },
        error: function() { alert('A error'); }
    });
    

  4. 4.우선이 중 "1.9.1"또는 "2.0.0", 한 페이지에서 JQuery와 라이브러리의 서로 다른 두 가지 버전을 가질 필요 없다 아약스 전화를 작동하게하기에 충분 ..

    우선이 중 "1.9.1"또는 "2.0.0", 한 페이지에서 JQuery와 라이브러리의 서로 다른 두 가지 버전을 가질 필요 없다 아약스 전화를 작동하게하기에 충분 ..

    다음은 컨트롤러 코드는 다음과 같습니다

        public ActionResult Index()
        {
            return View();
        }
    
        public ActionResult FirstAjax(string a)
        {
            return Json("chamara", JsonRequestBehavior.AllowGet);
        }   
    

    이것은 당신은보기가 어떻게 :

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
    
    <script type="text/javascript">
    $(document).ready(function () {
        var a = "Test";
        $.ajax({
            url: "../../Home/FirstAjax",
            type: "GET",
            data: { a : a },
            success: function (response) {
                alert(response);
            },
            error: function (response) {
                alert(response);
            }
        });
    });
    </script>
    

  5. 5.당신이 당신 아약스 호출에 C # 방법을 칠 필요가 있다면 당신은 당신의 요청이 그냥 단지 URL을 지정해야합니다 후 얻을 경우이 개 문제 유형 및 URL을 전달해야합니다. 이 벌금을 일하고 아래의 코드를 따르십시오.

    당신이 당신 아약스 호출에 C # 방법을 칠 필요가 있다면 당신은 당신의 요청이 그냥 단지 URL을 지정해야합니다 후 얻을 경우이 개 문제 유형 및 URL을 전달해야합니다. 이 벌금을 일하고 아래의 코드를 따르십시오.

    C # 코드 :

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

    자바 스크립트 코드의 경우 GET 요청

        $.ajax({
            url: 'home/FirstAjax',
            success: function(responce){ alert(responce.data)},
            error: function(responce){ alert(responce.data)}
        });
    

    자바 스크립트 코드의 경우도 POST 요청 및 [HttpGet]을 [HttpPost]

            $.ajax({
                url: 'home/FirstAjax',
                type:'POST',
                success: function(responce){ alert(responce)},
                error: function(responce){ alert(responce)}
            });
    

    참고 : 동일한 컨트롤러에 FirstAjax 경우보기 컨트롤러 다음 어떤 URL에서 컨트롤러 이름을 필요로하는. URL이 같은 'FirstAjax'


  6. 6.그것은 당신의 UPDATE 질문에 대한합니다.

    그것은 당신의 UPDATE 질문에 대한합니다.

    같은 이름 및 서명 두 가지 방법이 없기 때문에 당신은 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();
    }
    

    그리고 메소드가 동작하게하는 방법을 더 참조 할 수 있도록이 링크를 참조하시기 바랍니다. 아주 좋은 참고하지만.


  7. 7.전망;

    전망;

     $.ajax({
            type: 'GET',
            cache: false,
            url: '/Login/Method',
            dataType: 'json',
            data: {  },
            error: function () {
            },
            success: function (result) {
                alert("success")
            }
        });
    

    컨트롤러 방법;

     public JsonResult Method()
     {
       return Json(new JsonResult()
          {
             Data = "Result"
          }, JsonRequestBehavior.AllowGet);
     }
    

  8. 8.대신 URL의 :의 serviceURL, 사용하다

    대신 URL의 :의 serviceURL, 사용하다

    url: '<%= serviceURL%>',
    

    당신은 successFunc 2 개 매개 변수를 전달하는?

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

  9. 9.Global.asax에있는 "JsonValueProviderFactory"를 추가 :

    Global.asax에있는 "JsonValueProviderFactory"를 추가 :

    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        ValueProviderFactories.Factories.Add(new JsonValueProviderFactory());
    }
    
  10. from https://stackoverflow.com/questions/16186083/making-a-simple-ajax-call-to-controller-in-asp-net-mvc by cc-by-sa and MIT license