2013-05-10 4 views
1

이것은 매우 어리석은 질문 일지 모르지만 저는 MVC에 관해 알게 된 학생이며 매우 흥미 롭습니다. 또한 Ajax 및 jQuery에 대한 지식이 거의 또는 전혀 없습니다. 나는 Ajax 서비스 나 jquery를 사용하지 않고서 코멘트 나 블로그 포스트를 게시하는 것과 같은 기본적인 애플리케이션을 만들어왔다. 이제는 Ajax 서비스가 호출되고 사용자 정의 jQuery 코드가 작성되는 것을 보았다.왜 ASP.NET MVC에서 Ajax 서비스와 jQuery를 사용해야합니까?

주 페이지에 주석을 추가 할 수 있고 주석을 쓰고 제출 한 후 주 페이지에 표시되는 작은 예제를 생각해 봅시다. 내가 코멘트를 저장하기 위해 문자열의 목록을 사용하여 알고 다음과 같은 기능

public class CustomAjaxController : Controller 
    { 
     // 
     // GET: /CustomAjax/ 
     private static readonly List<string> Comments = new List<string>(); 
     public ActionResult Index() 
     { 
      return View(Comments); 
     } 

     [HttpPost] 
     public ActionResult AddComment(string comment) 
     { 
      Comments.Add(comment); 

      return RedirectToAction("Index"); 
     } 
    } 

와 컨트롤러를 상상 하는 것은 좋은 생각이 아니다하지만 간단하게하기 위해 나의 점을 설명하기 위해 나는 그것을 사용했습니다. 또한 나는 모델이 없지만 같은 이유로 다시 모델을 가지고있다.

@model IEnumerable<string> 



<h4>comments</h4> 
<ul id ="comments"> 
    @foreach (var comment in Model) 
    { 
     <li>@comment</li> 
    } 
</ul> 
<form method="POST" id="commentsForm" 
    action = "@Url.Action("AddComment")"> 

    @Html.TextArea("Comment", new{rows =5, cols =40}) 
    <br/> 

    <input type ="submit" value="Add comment"/> 

</form> 

이제 jquery 및 ajax 요청을 사용하여 동일한 작업을 수행했습니다. 그러나 왜 내가 같은 결과를 얻으려면 어떻게해야합니까, 아니면 이것이 아약스 요청을 사용하기에 적합한 장소인지 어떻게 알 수 있습니까?

답변

2

하지만 같은 결과를 얻으려면 어떻게해야하나요? 아니면이 이 아약스 요청을 사용하기에 적합한 지 어떻게 알 수 있습니까? 당신이 실제로 업데이트 할 페이지의 부분 만이 와이어를 통해 전송되기 때문에

  • 그것은 대역폭을 저장합니다

는 AJAX 혜택의 몇 가지를 제공합니다. 샘플 코드에서는 단 하나의 댓글이 한 장소에 추가되는 경우에도 전체 HTML을 다시로드하는

  • 은 서버 측 처리
  • 기다리는 동안 사용자가 페이지에 다른 일을 할 수있는 비동기 의미는

    그 중 하나를 활용하고 싶을 때 언제든지 사용할 수 있습니다.

    +0

    그렇다면 요청이 아약스 요청인지 확인하고 아약스 요청이 true 인 경우 부분보기를 반환해야하는 이유는 무엇입니까 ?? 그러면 아마 전체 페이지가 아닌 주석 섹션을 새로 고칩니다. – Cybercop

    +1

    네, 그렇습니다. 부분 뷰를 반환하면 전체 HTML 페이지의 작은 부분 만 반환됩니다. 즉, 새로 고쳐야하는 부분 만 반환합니다. 컨트롤러 액션에서 JSON을 반환하고 클라이언트에서이 JSON을 사용하여 몇 가지 작업을 수행 할 수도 있습니다. –

    관련 문제