【问题标题】:ASP.NET MVC return a different viewASP.NET MVC 返回不同的视图
【发布时间】:2008-11-25 14:58:17
【问题描述】:

我有一个包含表单的视图,表单发布和数据被处理等,然后我想返回视图索引,所以返回视图(“索引”);

但是这会抱怨我的 ViewData 不存在,我感觉 Index() 下的控制器代码没有被处理,它将它需要的列表添加到 ViewData,有人知道出了什么问题吗?

谢谢

编辑:显然这样做是为了防止递归......在这种情况下,我不知道该怎么做而不重复我所有的 ViewData 东西两个控制器

【问题讨论】:

    标签: c# asp.net-mvc


    【解决方案1】:

    我认为你应该有两个动作:一个处理表单提交,另一个收集视图数据。 处理完表格后,您致电return RedirectToAction("Index") 即可完成。 我希望我明白你的意思。

    【讨论】:

    • +1 绝对是必经之路,阅读en.wikipedia.org/wiki/Post/Redirect/Get 了解有关此方法的好处的更多详细信息。
    • 不重定向怎么样?返回视图(“索引”)
    • @CodeClimber。我有一个类似的场景。我在索引页面中有部分视图。部分视图提交表单。表单提交数据存储在数据库中。我想在索引页面上显示最新数据。当我尝试您的方法时,我收到此错误“传递到字典中的模型项是'System.Collections.Generic.List'类型,但字典需要'UnderstandingPartialViews.Models.abc'类型的模型项”
    • @Luckyy,我们也可以通过 RedirectToAction 将动作从一个控制器重定向到另一个控制器
    【解决方案2】:

    如果控制器上的 Index 方法执行 return View("Index");,则只需使用所需的任何参数调用 Index 方法。然后该方法将填充索引视图所需的 ViewData。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-15
      • 1970-01-01
      • 2010-10-06
      • 1970-01-01
      • 2019-06-04
      • 1970-01-01
      • 1970-01-01
      • 2011-02-19
      相关资源
      最近更新 更多