.NET MVC项目的结构

时间:2011-01-21 22:40:40

标签: asp.net-mvc-2 structure asp.net-mvc-3

我正在设置一个新项目,并想提供一些有关它的提示,以便从一开始就完成。

简单地说,这是我的项目:

  1. 会有一些关于/ info页面:关于我们,联系方式,如何...那么创建一个AboutController或者我应该为每个页面制作单独的控制器是一个好习惯吗?

  2. 会有一个需要登录的会员区。为此创建一个区域是一个好主意吗? 也许像:xxx.com/member/stuff/edit/1

  3. 我是否需要创建一个“常规”区域,或者我可以在根目录中放置“关于”,如下所示:xxx.com/about/contact而不是xxx.com/general/about/contact

  4. 主页怎么样?登录时页面看起来非常相似,何时不是。为此设置两个母版页并尝试将部分代码重用代码(如页脚和菜单)是一种好习惯吗?

  5. 我只对MVC 2工作过一点,如果没有MVC 2 RC用于这样一个全新的项目,这是愚蠢的吗?

  6. 任何答案或建议都非常感谢。 谢谢

1 个答案:

答案 0 :(得分:2)

  

会有一些关于/ info页面:   关于我们,联系,如何......这是好事   练习然后创建一个   AboutController或我应该做   每页单独的控制器?

我通常有一个Home或About(或两者)控制器来容纳这些页面。通常不需要单独的控制器。在我的大多数网站中,这些几乎都是不接受POST的静态内容页面,因此无论如何控制器都非常薄。

  

将会有一个会员区   需要登录。是一个好主意   为此创建一个区域?

这个决定非常主观。我建议如果你没有清楚地了解何时以及为什么你想要一个区域,那么就不要使用一个区域。此外,如果您的应用程序的唯一区域是我们的登录成员而不是,那么似乎不需要区域。

  

我是否需要创建一个   “一般”区域或我可以放   根目录中的“关于”

在根目录中,这是“一般”区域。

  

母版页怎么样?页面会   登录时看起来非常相似,   什么时候不。这是好习惯吗?   为此有两个母版页并尝试   重用代码(如页脚和   菜单)有部分?

在这种情况下我不使用两个主人。我的大多数网站的所有更改都是一些标题内容(存在登录或注销链接)。

我所做的是创建一个Html Helper来有条件地渲染一个或另一个控件:

public static class PackageThumbnailHelper
{
    public static MvcHtmlString AuthenticationControls(this HtmlHelper helper)
    {
                if (helper.ViewContext.HttpContext.Request.IsAuthenticated) {
                    return helper.Partial(MVC.Shared.Views.LoggedOnAuthenticationControls);
                } else {
                    return helper.Partial(MVC.Shared.Views.NotLoggedOnAuthenticationControls);
                }
    }
}
  

我只对MVC工作过一点   2,不参加MVC 2是愚蠢的   RC这样一个全新的项目?

MVC 2? MVC 3怎么样? MVC 3最近发布。它包括Razor视图引擎,因此我认为它绝对值得使用。我认为没有理由不将MVC3用于新项目。