MVC3路由与子文件夹结构

时间:2012-10-23 21:47:28

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

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

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

solution

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

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

好的,如果可以的话,我该如何开始路由呢?我一直在尝试多种方法来获得任何结果,但它们最终都会出现404错误。

如果这对我来说是错误的做法,那么什么是更好的选择?

提前致谢!

2 个答案:

答案 0 :(得分: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")

答案 1 :(得分:1)

您可以手动返回每个actionresult或partialactionresult的视图文件。

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

e.g。

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