2010-09-06 135 views
2

我正在開發asp.net mvc2。我開始創建很多觀點和部分視圖,其中大部分我必須創建一個視圖模型。這看起來很快,要記住什麼樣的觀點與什麼模式有關,將變得難以管理。我試圖儘可能地在我的視圖模型中使用繼承。如何組織視圖,局部視圖及其視圖模型?

我想知道別人如何在他們的項目中管理這個?

回答

1

我將我的PV放置在Views文件夾中的PV文件夾中。

so Views/Home/PartialViews;

然後我在我的global.asax文件中註冊該路徑;

public static void RegisterViewEngine() 
    { 
     ViewEngines.Engines.Clear(); 

     WebFormViewEngine viewEngine = new WebFormViewEngine(); 

     viewEngine.PartialViewLocationFormats = (new[] { 
      "~/Views/Shared/PartialViews/{0}.ascx", 
      "~/Views/{1}/PartialViews/{0}.ascx" 
      }).Concat(viewEngine.PartialViewLocationFormats).ToArray(); 

     ViewEngines.Engines.Add(viewEngine); 
    } 

我也傾向於將FormViewModels放在視圖文件夾中。

/Views/Home/IndexFormViewModel.cs 

以上是最近的,因爲這我把它們放在一個模型項目,但有時也會發現,我可以用我的模型和DataRepository一個循環引用情況結束之前。

+0

手動註冊部分視圖有什麼好處? – Roman 2010-09-06 05:41:54

+0

你不是。您正在將位置註冊到PartialViews。在上面的代碼中,{1}是指像/ Home或/ ContactMe等視圖。然後,您可以將PV放在PartialViews文件夾中,而不必在視圖中的路徑中編碼。這是個好消息,因爲您可以將PV從/ home/PartialViews文件夾拖到Shared/PartialViews文件夾,而不必更改任何代碼。 – griegs 2010-09-06 05:53:55

+0

我應該補充說,你不要在「〜/ Views/Home/PartialViews/MyPV.ascx」中編碼。您按原樣編碼「〜/ Views/{1}/PartialViews/{0} .ascx」 。 – griegs 2010-09-06 05:57:53