1

可能这听起来很愚蠢的问题,但我是一个刚刚了解 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 请求的正确位置。

4

1 回答 1

2

但是我为什么要这样做来获得相同的结果,或者我怎么知道这是使用 ajax 请求的正确位置。

AJAX 提供了几个好处:

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

每当您想利用其中之一时,都可以使用它。

于 2013-05-10T13:19:17.977 回答