从JQuery ajax调用刷新视图

时间:2013-11-29 09:56:59

标签: c# ajax asp.net-mvc

我有一个cshml视图,我在div中调用另一个视图,如下所示

    <div class="family_name" id="DisplayPartilView">
        <div class="content_part content_part2">
         <h1 class="family_nameStyle">Additional Contacts  <button id="AddEmergencyContact" jid="@ViewData["offerId"].ToString()" class="btn highlight" data-dismiss="modal" >
                +</button></h1> 
            <h6>&nbsp;</h6>
            <div id="listChildContactAuthorisationsCI" class="table_form">
                <table style="width: 640px;" id="CIAuthtable">
                    <tr>
                        <td>Contact Name</td>
                         <td title="This contact is authorised to drop off and collect this child.">Collection</td>
                        <td title="This contact is an emergency contact for the child.">Emergency</td>
                        <td title="This contact can authorise the child to participate in centre excursions.">Excursion</td>
                        <td title="This contact can authorised the administering of medication to the child.">Medical</td>
                    </tr>
                    @if (Model.ChildContactAuthorisations != null)
                    {

                          @Html.EditorFor(x => x.ChildContactAuthorisations)
                    }
                </table>
            </div>
        </div>

    </div>

此视图在其他视图中共享,因此它位于“共享/编辑器模板”文件夹中。 我正在使用另一个页面的ajax(addcontact),如下所示

          $.ajax({
                data: $.parseJSON('{"Id" : "' + EntityId + '"}'),
                type: 'POST',
                url: '@(Url.Action("GetAdditionalContacts", "QkEnrolment"))',

                success: function (result) {
                    alert(result.outerHTML);

                    $('div#listChildContactAuthorisationsCI').html(result);
                },
                error: function () {
                    alert('Error');
                }
               });

在添加联系人后,控制器将按照控制器功能进入控制器

      public ActionResult GetAdditionalContacts(int Id)
    {
        Id = Convert.ToInt32(TempData["offerId"]);
        User user = DependencyResolver.Current.GetService<ICrud<User>>().Where(x => x.Username == WebSiteContext.Current.UserId).FirstOrDefault();
        var offer = _offerRepo.Get(Id);
        var child = _childRepo.Get(offer.Child.Id);
        var childStubContactAuthorisations = child.GetContactAuthorisations().ToList();

        List<Section_ChildContactAuthorisation> ChildContactAuthorisations1 = GetAggregateChildContactAuthorisations(user, childStubContactAuthorisations);

        TempData["offerId"] = Id;

       return Json(ChildContactAuthorisations1, JsonRequestBehavior.AllowGet);

    }

但我想用上面的控制器函数返回模型(包含新添加的联系人)的视图。但是视图没有更新。

任何人都可以帮助我 谢谢, 维迪亚

1 个答案:

答案 0 :(得分:0)

现在你在$('div#listChildContactAuthorisationsCI')中将json设置为html,你将不得不遍历返回的json并从这些值创建适当的html然后将它们添加到$('div#listChildContactAuthorisationsCI') html的(数据) 例如:

data = '';
for(i=0;i<result.length;i++) {
   data += '<li>' + result.whateverIsInhere + '</li>';
}

如果您不知道json中的内容是什么,请使用Console.Log(结果),然后使用开发人员工具(Chrome中的F12)并查看其中的内容。