【问题标题】:MVC3 routing with subfolder structure具有子文件夹结构的 MVC3 路由
【发布时间】:2012-10-13 22:32:51
【问题描述】:

我学习 MVC3 已经有一段时间了,虽然我了解大部分基础知识,但路由是我似乎无法摆脱困境的东西。我不确定我是否以正确的方式做/思考它,而我在 stackoverflow/google 上阅读的其他答案似乎只会让我更加困惑。

无论如何,情况就是这样。我有一个解决方案(为这个问题清理了它),我想在我的视图文件夹中创建一个结构来组织我一直用于我的 asp.net webforms 项目的结构中的所有内容。

无论如何,我想知道是否有可能获得这种结构,在其中我可以将所有局部视图组织到一个名为 UserControls 的特定子文件夹中,其中有更多子文件夹,我可以将每个局部视图分组需要特定页面。

理想情况下,我的 Views 文件夹将包含 2 个文件夹:Pages 和 UserControls,我需要的所有内容都将放在一个子文件夹或子子文件夹中。

好的,如果这是可能的,我将如何开始路由呢?我一直在尝试多种方法来获得任何结果,但它们都以 404 错误告终。

如果这是我的错误方法,还有什么更好的选择?

提前致谢!

【问题讨论】:

  • 也许向我们提供代码实际上可以得到答案。
  • 我不需要代码,这是一个模型解决方案,我只想知道我正在尝试做的事情是否可行以及实现此目标的好方法是什么
  • 你总是乐于助人。好在有些人真的费心去读这一切。美好的一天。
  • 您询问是否可以使用子文件夹,但您放在一起的路由一直给您 404。然后我问你的代码。你拒绝了那个请求。我不想对你的方法做出假设,因为你已经尝试了一些我想看看你做错了什么而不是仅仅用勺子喂你的东西。谢谢。

标签: c# asp.net asp.net-mvc-3 routing subdirectory


【解决方案1】:

从逻辑上讲,最好将局部视图与实际视图分组,如下所示:

/Other
    /Partials
         OtherPartial1.cshtml
         OtherPartial2.cshtml
    Index.cshtml
/Some
    /Partials
         SomePartial.cshtml
    Index.cshtml
    SomeOtherView.cshtml

现在,你当然可以按照你的建议去做,但这只是意味着你在其他视图中的助手有更多的文字要写才能到达他们想去的地方:

IE。

 @RenderPartial("Partials/OtherPartial.cshtml")

VS

 @RenderPartial("~/Views/PartialControls/Other/OtherPartial.cshtml")

【讨论】:

    【解决方案2】:

    您可以手动返回每个操作结果或部分操作结果的视图文件。

    我还建议将“UserControls (PartialViews)”文件夹更改为仅 PartialViews。

    例如

    public PartialViewResult OtherPartialView1()
        {
            return PartialView("../PartialViews/OtherViews/OtherPartialView.cshtml");
        }
    

    【讨论】:

      猜你喜欢
      • 2012-03-23
      • 2011-04-04
      • 2019-08-26
      • 1970-01-01
      • 1970-01-01
      • 2020-11-19
      • 2019-10-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多