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請求完成。但爲什麼我應該這樣做才能達到相同的結果,或者我怎麼知道這是使用ajax請求的正確位置。
那麼爲什麼我應該檢查請求是否是ajax請求,並且如果ajax請求爲真則返回部分視圖?那麼這可能只會刷新評論部分而不是整個頁面? – Cybercop 2013-05-10 13:28:17
是的,確切地說。當你返回一個局部視圖時,你只返回整個HTML頁面的一小部分 - 只有需要刷新的部分。您也可以從控制器操作中返回JSON,並在客戶端上使用此JSON執行一些操作。 – 2013-05-10 13:33:27