2014-10-30 64 views
0

我的控制器方法是局部视图不refershing

public ActionResult Index(string id = "All") 
     { 
      ViewBag.RefType = new SelectList(rep.getReferenceType()); 
      List<Reference> reference = rep.getReference(id); 

      if (Request.IsAjaxRequest()) 
       return PartialView("_ReferenceList", reference); 
      else 
      { 
       ViewBag.domain = "All"; 
       return View(reference); 
      } 
     } 

第二种方法调用索引

public ActionResult EditReference(Reference rf, int Dom) 
     { 
      Reference rf1 = null; 
      string dom = ""; 
      if (ModelState.IsValid) 
      { 
       rf1 = rep.UpdateReference(rf); 
       if (Dom == 0) 
       { 
        dom = "All"; 
       } 
       else 
       { 
        dom = rf1.Domain; 
       } 
       return RedirectToAction("Index", new { id =dom}); 
      } 
      return View(rf1); 
     } 

,我的看法是

@using (Ajax.BeginForm("EditReference", "Reference", new AjaxOptions { HttpMethod = "POST", OnSuccess = "closeDialog()", LoadingElementId = "divLoading" })) 
{ 
    @Html.AntiForgeryToken() 
    @Html.ValidationSummary(true) 

    Html.RenderPartial("_Reference");  
} 

的问题是,新编辑的数据犯规出现一旦对话框关闭...它显示相同的旧数据...我试过另一个功能

function closDlgAndRefresh{ 
$('.Dialog').dialog('close'); 
      $('.ddlRndrPrtl').val($('.ddlRndrPrtl').val()); 
      $('.ddlRndrPrtl').trigger('change'); 
} 

当我调用此函数onSuccess它显示的数据,但索引函数被称为两次,因为我不wana做.......一旦索引函数被调用编辑功能和第二次下拉时触发......

任何帮助表示赞赏...在此先感谢...

回答

0

得到它固定....

忘了补充更新目标ID在Ajax.BeginForm

@using (Ajax.BeginForm("EditReference", "Reference", new AjaxOptions { HttpMethod = "POST", LoadingElementId = "divLoading", InsertionMode = InsertionMode.Replace, UpdateTargetId = "DivTbl_Reference" })) 
{ 
    @Html.AntiForgeryToken() 
    @Html.ValidationSummary(true) 

    Html.RenderPartial("_Reference");  
}