這就是我做更新的頁面元素的一些信息:
林我的看法Practices.ascx,我已經得到了實踐的一個div更新
<div style=" width:20%; float:right; background-color:inherit" >
(Last Seen: <span id="<%: practice.ID %>LastSeenPractice" class="LastSeenPractice" >Loading...</span>)
</div>
在Practices.ascx在腳本部分的jQuery
還可以隨時更新的做法,我做它每隔10分鐘:
function UpdatePractice() {
jQuery.post("/reporter/LastSeenPractice", $.param({ practiceID: pid, doctorIDs: DoctorIDs }, true), UpdateLastSeenPractice, "json");
}
setInterval(UpdatePractice, 1000*60*10)
在你的控制器,創建一個函數來收到的jQuery的電話:
[HttpPost]
public JsonResult LastSeenPractice(string practiceID, List<String> doctorIDs)
{
... process query ...
return Json(new { pid = practiceID, LastSeenPractice = lastSeenPractice, LastSeenDoctor = lastSeenDoctor });
}
,最後回到你的JScript中,創建一個回調函數來處理JSON結果
function UpdateLastSeenPractice(data) {
$("#" + data.pid + " .LastSeenPractice").html(data.LastSeenPractice);
for (var key in data.LastSeenDoctor) {
$("#" + key + " .LastSeenDoctor").html(data.LastSeenDoctor[key]);
}
};
這應該是使得使用jQuery
更新一個AJAX調用的基本流程: 忘記問題約局部視圖的一部分。我使用嵌套的部分視圖來降低已經複雜的語法的複雜性。我的每個練習都是在它自己的視圖下,並且index.ascx循環遍歷所有練習,並在treenode中創建一個局部視圖並傳入一個參數(不幸的是,您只能傳入一個參數,因此我將所需的所有設置鑑於字典因此PracticesDict:
<div id="bodyPracticesList" style="float:left; width:100%">
<% Html.RenderPartial("Practices", Model.PracticesDict); %>
</div>
我的劇本的一切都在的Index.aspx和HTML是在practices.ascx所以你可以做你的三種形式類似的東西,也就是把它們放在局部視圖正如Max建議打破一切,
來源
2011-01-27 22:28:40
Joe
Eric Sowell講述了一個很好的教訓,教導了MVC 3和jQuery的最佳實踐,它包括DDD設計原則和DI,並着重於創建可重用的jQuery代碼 http://channel9.msdn.com/Series/mvcConf/mvcConf-2-Eric-Sowell-Evolving-Practices-in-Using-jQuery-and-Ajax-in-ASPNET-MVC-Applications – GregB 2011-10-07 16:35:50