我有一个事件页面,在创建新事件(创建动作调用)后,我重定向到该事件控制器的Index方法。
我使用Ajax将数据发布到控制器。
@using (Ajax.BeginForm("Create", "Events", new AjaxOptions
{
InsertionMode = InsertionMode.Replace,
HttpMethod = "POST",
OnSuccess = "updateSuccess"
}, new { @id = "updateEventForm" }))
{
在将数据成功保存到服务器的同时,它将调用“ updateSuccess ”javascript方法,其中我将整个索引页面作为html在数据中作为参数,如下所示,
function updateSuccess(data)
{
console.log(data);
}
我只需要通过此Index方法调用
以html的形式从服务器获取所有更新的数据索引方法:
public ActionResult Index(int SubscriptionID = 0)
{
try
{
return PartialView(Events.GetAllEventsWithoutSubscription());
}
catch (Exception ex)
{
throw ex;
}
}
创建方法:
[HttpPost]
public ActionResult Create(Events objEvents)
{
try
{
int Result = CreateEvent(objEvents);
return RedirectToAction("Index", new { SubscriptionID = objEvents.SubscriptionID });
}
catch (Exception ex)
{
throw ex;
}
}
我不想重定向到索引。我只是希望通过索引更新HTML以仅通过jquery更新索引表。 但在IE8 +版本中,不会以某种方式调用RedirectAction。 请尽快帮忙。
答案 0 :(得分:0)
如果您通过AJAX执行此操作,为什么不直接返回Index
方法的结果?:
[HttpPost]
public ActionResult Create(Events objEvents)
{
try
{
int Result = CreateEvent(objEvents);
return Index(SubscriptionID = objEvents.SubscriptionID);
}
catch (Exception ex)
{
throw ex;
}
}
这样,您的浏览器就不必再向服务器发出请求以获得结果。如果您以传统方式(没有AJAX)发出POST请求,并且不希望用户按下按RedirectToAction
的刷新按钮再次发送该表单,则F5
是有用的。但是使用AJAX,你不会遇到这个问题。