2016-06-21 66 views
0

我無法通過互聯網找到MVC-Razor佈局背後的卷軸意圖。mvc中用剃刀的休閒佈局模板

在共享文件夾中,有:

_Layout.cshtml 
_LoginPartial.cshtml 

我應該使用_Layout爲這麼想的需要先登錄頁面,以及需要先登錄頁面使用_LoginPartial?或者我完全失去了?

爲了使簡單:

如果我創建登錄時只能達到一個新的觀點,應該把它與

Layout = "~/Views/Shared/_Layout.cshtml"; 

Layout = "~/Views/Shared/_LoginPartial.cshtml"; 

可以開始?

編輯:

檢查從每個人的教程和說明(感謝所有)

_Layout.cshtml酷似在Web表單母版頁,

所以我應該始終使用:

Layout = "~/Views/Shared/_Layout.cshtml"; 

at beg進入我想要像其他人一樣格式化的頁面。

的登錄部分可以認證後可應用於改變佈局(斷開按鈕,而不是連接,等。)

+0

'_Layout.cshtml'是一個佈局文件(可以被多個視圖使用)。 '_LoginPartial.cshtml'是一個局部視圖。這是2件不同的事情 –

+1

^這。花一些時間閱讀http://asp.net/mvc上的教程。 –

+0

謝謝@ChrisPratt,如果我理解的很好,佈局就像是一個母版頁,而部分視圖更像是控件? –

回答

1

文件_Layout.cshtml表示應用程序中每個頁面的佈局。雖然部分視圖是一個自定義的可重用組件,您可以在每個頁面中使用它,但您需要它。例如,我們可以在頁面上爲客戶創造一個局部視圖,並調用了很多時間

<table class="table table-condensed"> 
    @foreach (var student in Model.Students) 
    { 
     @Html.Partial("_StudentForm ", student) 
    } 
</table> 

所以_Layout旨在用於所有頁面和_LoginPartial.cshtml可以在頁面內使用,你需要有一個登錄表單in。檢查這篇文章關於局部視圖 Tips and Tricks about Razor Partial Views

1
Layout = "~/Views/Shared/_Layout.cshtml"; 
在收看開始文件(_ViewStart.cshtml)

,可倍,其唯一在那個文件中。

@{ 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

的_Layout.cshtml和_Viewstart.cshtml組合類似於Web應用程序的主網頁,但這些不會有與它們相關的控制器動作。如果您在_ViewStart文件中設置佈局設置,則無需將其設置在實際視圖中,它們將從viewstart文件繼承它。 如果你看看佈局文件裏面,你會看到這條線的地方

@RenderBody() 

這是你的個人意見HTML將結束時,您的特定視圖被調用。

登錄部分僅僅是一個快速入門,演示一個視圖,可以根據用戶是否登錄來更改顯示。

1

您可以使用相同的_Layout.cshtml,但您的控制器ActionMethod應更改爲Authenticate。使用下面的鏈接獲取更多信息。

Authenticate User in MVC

1

它更多佈局的命名約定的。 視圖將從viewstart文件繼承它。如果您查看佈局文件,您將看到renderbody方法。

@RenderBody() 

這就是HTML代碼在瀏覽器中被讀取和顯示的地方。

_loginPartial.cshtml它只是爲了外觀,並告訴你Mvc能夠做什麼。

當使用空項目模板 時,Visual Studio會創建佈局_Layout.cshtml。此佈局默認通過/Views/_ViewStart.cshtml文件應用於所有視圖。

如果您不希望應用到視圖中的默認佈局,可以在_ViewStart.cshtml更改設置(或者完全刪除文件),在視圖中指定另一個佈局,像這樣:

@{ Layout = "~/Views/Shared/MyLayout.cshtml"; }

也可以爲一個給定的視圖中禁用任何佈局,像這樣:

@{ Layout = null; }

希望這有助於。