为什么以及何时在ASP.NET MVC中使用Ajax服务和jQuery?

时间:2013-05-10 13:16:40

标签: asp.net-mvc jquery asp.net-mvc-4

这可能是一个非常愚蠢的问题,但我是刚刚了解MVC的学生,我发现它非常有趣。另外,我对Ajax和jQuery知之甚少。我一直在创建一些基本的应用程序,比如在不使用Ajax服务或jquery的情况下发布评论或博客文章。现在我来到了一个部分,我看到正在调用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请求完成同样的事情。但为什么我应该这样做才能获得相同的结果,或者我怎么知道这是使用ajax请求的正确位置。

1 个答案:

答案 0 :(得分:2)

  

但我为什么要这样做才能达到相同的效果,或者我怎么知道这一点   是使用ajax请求的正确位置。

AJAX提供了几个好处:

  • 它节省了带宽,因为只有您想要更新的页面部分实际上是通过网络发送的。在您的示例代码中,即使只在一个地方添加了一条评论,您也会重新加载整个HTML
  • 异步意味着用户可以在等待服务器端处理时在页面上执行其他操作

只要您想利用其中任何一项,就可以使用它。