2009-07-17 71 views
2

我認爲這是一個命名空間的問題,答案很可能是死的簡單,但我在這個MVC的東西是新的。MVC的新手問題關於強類型的瀏覽

我有多個意見命名爲「指數」。這不是一個問題,直到我試圖創建一個名爲新,強類型的視圖「索引」。

(爲了什麼它的價值,我想用的NerdDinner樣品中要遵循的步驟一起,但在VB而不是C#)

當我將命名爲強類型的視圖「指數」編譯器拋出這個錯誤:

Base class 'System.Web.Mvc.ViewPage(Of System.Collections.Generic.List(Of Models.User))' specified for class 'Index' cannot be different from the base class 'System.Web.Mvc.ViewPage' of one of its other partial types.

有人可以告訴我爲什麼發生這種情況,並且我能做些什麼來緩解這一問題?

在此先感謝。

VIEW:

<%@ Page Title="" Language="VB" MasterPageFile="~/Views/Shared/Site.Master" 
     AutoEventWireup="false" CodeBehind="Index.aspx.vb" 
     Inherits="SampleSite.Index" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server"> 
</asp:Content> 

代碼背後:

Imports System.Web.Mvc 
Imports System.Collections.Generic 

Partial Public Class Index Inherits System.Web.Mvc.ViewPage(Of List(Of SampleSite.Models.User)) 
End Class 
+0

郵政`Index`查看,請 – 2009-07-17 18:51:54

回答

0

如果你說你有多個「索引頁」,那麼問題是,都具有相同的命名空間。 你有指標(一)從列表中的ViewPage衍生的ViewPage和索引(B)(..)得出,因爲類聲明的部分,並具有相同的命名空間,編譯器試圖把它們放在一起在一類,但不是可能的,因爲它們不會從相同的基類繼承。後面相應>繼承= 「SampleSite.XXXXXXX.Index」 並修改代碼 - 指數的(a) - >繼承= 「SampleSite.Index」 指數(B):

執行此操作。

1

我想你需要從ViewPage(Of List(Of SampleSite.Models.User))在你的頁面定義繼承:

它的工作原理是這樣??

您的強類型ViewPage必須從「ViewPage(Of T)」基本泛型類型繼承 - 其中T是要在視圖頁面中顯示的數據類型(「視圖模型」)。

馬克

0

我想這只是一個命名空間的問題。我在下面的命名空間中包裝了有問題的索引類,並解決了問題。不知道這是否是解決這個問題的正確方法,但它有效。

進口System.Web.Mvc 進口System.Collections.Generic

命名空間SampleSite

Partial Public Class Index 
    Inherits System.Web.Mvc.ViewPage(Of List(Of Models.User)) 

End Class 

末命名空間