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