首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >邮政后显示页面的最佳实践

邮政后显示页面的最佳实践
EN

Stack Overflow用户
提问于 2015-05-28 12:37:38
回答 2查看 66关注 0票数 1

我有一个视图和一个表单,它调用控制器动作Post方法来“完成”一个包。然后,它需要刷新页面its,因为它包含将在视图本身和部分中更新的信息。它确实在不同的MVC区域使用两个不同的控制器。

Post工作正常,重定向被发出,但是页面没有刷新。

我已经读过了,我应该在调用完成的Ajax调用中使用OnSuccess,但我认为这是在页面调用中使用的,而不是导航到不同页面的调用。

视图形式

代码语言:javascript
复制
@using (Ajax.BeginForm("Complete", "Packages", new { Area = "Core" },
new AjaxOptions
{
    HttpMethod = "POST"
}))

{

核心(区域)包控制器

代码语言:javascript
复制
[HttpPost]
public ActionResult Complete(int ID)
{ 
    // Update code

    // Refresh the full page

    return RedirectToAction("Summary", new { Area = "Control", id = packageBuilder.CurrentPackage.ID });
}

控制(区域)包控制器

代码语言:javascript
复制
[HttpGet]
public ActionResult Summary(int id)
{ 
    // Get Model
    return View("Summary", model);    
}

任何指示都将受到热烈欢迎。

谢谢,

克里斯。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-28 12:51:41

提交表单并没有发出重定向之后,页面没有刷新,原因是您通过AJAX提交请求。这是浏览器在幕后发出的请求。

如果您想提交表单并刷新页面,我建议将代码从Ajax.BeginForm(...更改为Html.BeginForm(...,然后它将加载页面并按预期执行重定向。

票数 2
EN

Stack Overflow用户

发布于 2015-05-28 14:10:58

我不太清楚您的ajax调用是如何构造的,但是如果您使用的是MVC Ajax助手,您只需在OnComplete方法中调用OnComplete(),如下所示:

代码语言:javascript
复制
@using (Ajax.BeginForm(new AjaxOptions{OnComplete = "javascriptfunction"}))
{
    //Data and submit button
}
<script>
    function javascriptfunction(){
        location.reload();
    }
</script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30506822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档