好的,我有一个使用ajax发布的表单......
<% using(Ajax.BeginForm(new AjaxOptions() { OnBegin="onBegin", OnSuccess = "onSuccess", OnFailure="onFailure" })) { %>
在服务器端,我从控制器传回一个Json对象。现在,当OnSuccess事件触发时,我可以通过使用“result.get_response()。get_object()”来获取Json对象...
我的问题是,我需要能够使用Json对象中的项目列表刷新页面上的部分内容...
关于如何做到这一点的想法......?
答案 0 :(得分:1)
使用jQuery,并遍历返回的JSON对象,构建您喜欢的任何内容。
示例:
$.each(json, function(i, item) {
//Add a dinner to the list on the right
$('#dinnerList').append($('<li/>')
.attr("class", "dinnerItem")
.append($('<a/>').attr("href", "/Dinners/Details/" + item.ID)
.html(item.Name)).append("SomeThing"));
});
答案 1 :(得分:1)
我认为您可以理解以下代码。
首先,创建一个ajax表单 - RefreshAjaxList:当前控制器的名称ajax动作。 - string.empty(可选) - ajax选项。 - 表格的id(可选) - 当点击状态时,我们将编辑状态调用服务器以更新状态。 - 编辑状态后,我们调用提交按钮来调用RefreshAjaxList。按钮是“display:none” - 在这个例子中,我有一个控制器:带有2个动作的AjaxController:
enter code here
public ActionResult UpdateStatus(int contactId, Status contactStatus)
{
ContactRepository repo = new ContactRepository();
repo.UpdateStatus(contactId, contactStatus);
return Json("success:true");
}
[AcceptVerbs(HttpVerbs.Post)]
[ActionName("RefreshAjaxList")]
public ActionResult RefreshContact()
{
ContactRepository repo = new ContactRepository();
IList<Contact> list = repo.List();
return PartialView("AjaxUc/AjaxList", repo.List());
}
var status = {active:1,inactive:0}; function editStatus(cell,id,active){ 如果(主动) cell.innerHTML =“活跃”+ “无效”; 其他 cell.innerHTML =“活跃”+ “无效”; }
function updateStatus(radio, id, active) {
if (radio.checked != active) {
if (confirm("Do you want to change the status of the contract?")) {
if (active)
cStatus = status.active;
else
cStatus = status.inactive;
$.ajax({
url: 'Ajax/UpdateStatus',
dataType: "json",
data: { contactId: id, contactStatus: cStatus },
success: function(html) {
jQuery("#divAjaxList").submit();
},
error: function(request, desc, ex) {
alert(desc);
}
});
}
}
}
ID 名字 姓 电话 电子邮件 状态 | ,);“&gt;
欲了解更多信息,请发送电子邮件至pnguyen2@firstlook.com进一步讨论。
希望这可以帮到你。答案 2 :(得分:0)
为要显示的项目列表创建用户控件,并通过将json数据传递给UC将其呈现为部分。这将部分刷新
答案 3 :(得分:0)
您还可以使用JTemplate呈现JSON数据