【问题标题】:ASP MVC doesn't redirect after submit提交后 ASP MVC 不重定向
【发布时间】:2016-03-28 19:17:51
【问题描述】:

我想知道是否可以在提交(发布)之后保留模型内容,而无需在同一个控制器上进行重定向。

场景:我希望用户按下一个按钮,将内容提交到存储库,因此数据库和内容将可用,因此他们可以立即进行编辑 - 我知道我可以编写新方法,但是我认为这对于我想要的东西来说太过分了?

我尝试在 ActionResult 中不返回任何内容或返回 null,但页面只是变为空白。

 ElseIf command = "Save" Then
   Return RedirectToAction("method", "controller", New With {parameters....}    
 ElseIf command = "Apply" Then
//I want the page to remain static so they can edit straight away
   Return Nothing

任何建议都会有所帮助

谢谢

【问题讨论】:

  • 保存成功后是否重定向用户编辑页面
  • 为什么不再次重定向到同一个编辑视图?
  • 我有一个 GET 请求,它从通过不同控制器发送的一组参数构建模型,所以我不能真正使用相同的方法,除非我更改一些现有代码,这意味着我需要重新测试所有内容,虽然这不是一个令人头疼的问题,也不会是一个很大的变化我想知道是否有什么东西可以用来在同一页面上保持相同的模型状态而无需任何重定向?
  • 您是说您希望在提交表单数据后留在同一页面(并且不重新加载页面)?如果是这样,您可能希望通过 ajax 提交表单。
  • 如果您不使用 ajax,您的网络浏览器将期待发送一个新页面……即使它与您当前所在的页面完全相同。如果您使用 ajax,则取决于您选择返回什么(如果有的话)......并且默认操作是让网络浏览器只停留在当前页面上(而不做任何事情)。

标签: c# asp.net-mvc vb.net asp.net-mvc-4 controller


【解决方案1】:

成功提交后重定向到编辑视图

return RedirectToAction("Edit","ControllerName", new { id = match.MatchID });

如果在编辑中有一些错误

return View();

如果你想在表单中使用 ajax 行为,你可以使用

Ajax.BeginForm("UpdateEmail", "Ajax", new AjaxOptions...

你可以看到这个link了解详情

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-14
    • 2016-11-22
    • 1970-01-01
    • 2011-11-19
    相关资源
    最近更新 更多