2011-01-21 74 views
1

我正在建立一個新項目,並希望得到一些關於它的提示,以便從頭開始。.NET MVC項目的結構

簡單地說,這是我的項目:

  1. 會有一些關於/ info頁面:關於我們,聯繫,如何..它是很好的做法,然後創建一個AboutController或者我應該做爲每個頁面單獨控制器?

  2. 會有一個需要登錄的會員區。爲此創建一個區域是一個好主意嗎? 也許這樣:xxx.com/member/stuff/edit/1

  3. 然後我需要創建一個「通用」區域,或者我可以在根中插入「關於」,如下所示:xxx.com/關於/聯繫,而不是xxx.com/general/about/contact?

  4. 母版頁怎麼樣?該頁面在登錄時看起來非常相似,以及不在時。是否有良好的做法,有兩個母版頁,並嘗試重複使用部分代碼(如頁腳和菜單)?

  5. 我只使用了MVC 2的一點點,是不是愚蠢的不去與MVC 2 RC這樣的全新項目?

任何答案或建議,高度讚賞。 謝謝

回答

2

會有一些關於/ info頁面: 關於我們,聯繫,如何..這是好 做法,然後創建一個 AboutController或者我應該做 單獨的控制器的每一頁?

我通常有一個家庭或關於(或兩者)控制器,其中包含這些頁面。獨立的控制器通常不是必需的。在我的大多數網站中,這些幾乎都是不接受POST的靜態內容頁面,因此控制器非常薄。

將會有一個會員區 需要登錄。 這是一個好主意嗎?

這個決定是相當主觀的。我建議如果你不清楚何時以及爲什麼你想要一個區域,那麼不要使用它。另外,如果唯一區域的應用程序擁有我們的登錄成員,而不是,則看起來不需要區域。

我會那麼需要創建一個 「一般」區域或可我只是把 「關於」根

在根,即「一般」區域。

母版頁怎麼樣? 頁面在登錄時看起來非常相似, 以及不在時。 有兩個主頁面,並嘗試使用 來重複使用部分代碼(如頁腳和 菜單)是否是良好的做法?

我不會在這種情況下使用兩個主人。對於我的大部分站點而言,所有這些變化都是一些標題內容(存在登錄或註銷鏈接)。

我做的卻是創建一個HTML幫助有條件地呈現一個控制或另一個:

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用於新項目。

+0

感謝您的回答。我在你的答案之前就開始了這個項目,並且我用一個家庭控制器來處理一般的東西。然而,我確實創建了一個會員區,現在我有兩個主頁。這給我造成了一些問題,所以我正在考慮刪除一個。我的意思是MVC 3 RC,而不是MVC 2 :)而且,我爲此付出了努力,Razor非常適合與之合作!驗證更好。謝謝 – Andreas 2011-01-30 00:18:39