TOC

This article is currently in the process of being translated into Vietnamese (~53% done).

Layout:

The ViewStart file

In the previous article, we learned how to define create a Layout view, which could be re-used across multiple views. A Layout is applied to a View whenever it's referenced through the Layout property, like this:

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

Thông thường, bạn có thể làm như vậy cho tất cả các trang mà bạn muốn dùng Layout - điều đó thật tuyệt, bởi nó cung cấp tính linh động khi dùng nhiều layouts hoặc thậm chí có các trang không dùng layout. Tuy nhiên, trong nhiều dự án, bạn có thể có một layout chung hoặc ít nhấy bạn dùng trong nhiều tình huống. Rất may cho chúng ta, có một cách dễ dàng để đặt Layout mặc định, thông qua tệp ViewStart.

ViewStart là gì?

File ViewStart giống view thông thường và nó có thể có cùng đuôi .cshtml, vậy để sử dụng, bạn nên thêm View vào trong thư mục Views đặt tên là _ViewStart.cshtml. Chúng ta sẽ tìm hiểu sau đó nhưng bây giờ, bạn nên biết rằng ASP.NET MVC sẽ tự động tìm ViewStart và dịch nó trước trang/view hiện tại. Điều đó cho phép ta có thể xác định chức năng chung, như trong trường hợp này, chúng ta có thể xác định Layout mặc định cho tất cả các trang. Trươc hết, hãy tạo ra một ViewStart cho dự án:

Just like for Layout files, the filename should be prefixed with an underscore, to state that this is not just a regular View:

Nội dung của nó nên là những gì bạn cần trước khi view thông thường được thự hiện - có rất nhiều ví dụ nhưng chúng ta sẽ nhìn vào Layout mặc định:

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

Now, whenever you add a View to your project, you can check the "Use a layout page" option, as seen on the screenshot, but leave the text field empty - your Layout will automatically be applied to your new View and you don't have to set the Layout property manually for each View anymore!

Multiple ViewStart files

Trong các dự án, bạn thường chỉ có một ViewStart, đặt trong thư mục gốc của thư mục Views. Tuy nhiên, trong các dự án lớn, có thể có nhiều hơn một ViewStart. ViewStart được săp xếp dạng cây nên ASP.NET MVC sẽ tìm ViewStart trong cùng thư mục của View được gọi và sau đó sẽ đi đến các thư mục khác nếu không thấy.

You can of course use this to your advantage and create another ViewStart file in one of your Views sub-folders - this ViewStart file will then be used for all the Views found in this folder. The structure could then look like this:

Summary

The ViewStart file allows you to define common logic which will be automatically applied to all of your Views, like defining a default/fallback Layout, as demonstrated in this article. You may also use it to define other types of common logic, like sharing information across all views by putting them in the ViewData from the ViewStart file and then referencing it from your views. We'll discuss the ViewData functionality in a later article.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!