Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 4 局部视图不刷新?_Asp.net Mvc 4_Dialog_Partial Views - Fatal编程技术网

Asp.net mvc 4 局部视图不刷新?

Asp.net mvc 4 局部视图不刷新?,asp.net-mvc-4,dialog,partial-views,Asp.net Mvc 4,Dialog,Partial Views,我的控制器方法是 public ActionResult Index(string id = "All") { ViewBag.RefType = new SelectList(rep.getReferenceType()); List<Reference> reference = rep.getReference(id); if (Request.IsAjaxRequest()) return PartialView("_Reference

我的控制器方法是

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);
    }
}
我的观点是

@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');
}
当我成功调用这个函数时,它会显示数据,但索引函数会被调用两次,我不会这样做…一次是从编辑函数调用索引函数,第二次是触发下拉菜单…

修复了它

忘记在Ajax.BeginForm中添加更新的TargetID

@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");     
}   
@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");     
}