Görünüm EklemeAdding a View

Rick Anderson tarafındanby Rick Anderson

Bu öğreticinin güncelleştirilmiş bir sürümü, Visual Studio'nun en son sürümünü kullanarak burada bulunabilir.An updated version of this tutorial is available here using the latest version of Visual Studio. Yeni öğretici, bu öğreticide birçok geliştirme sağlayan ASP.NET Core MVCkullanır.The new tutorial uses ASP.NET Core MVC, which provides many improvements over this tutorial.

Bu öğretici, denetleyiciler ve görünümlerle ASP.NET Core MVC öğretir.This tutorial teaches ASP.NET Core MVC with controllers and views. Razor Pages, Web Kullanıcı arabirimi oluşturmayı daha kolay ve daha üretken hale getiren sayfa tabanlı bir programlama modelinin ASP.NET Core 2,0 ' de yeni bir alternatiftir.Razor Pages is a new alternative in ASP.NET Core 2.0, a page-based programming model that makes building web UI easier and more productive. MVC sürümünden önce Razor Pages öğreticisini denemenizi öneririz.We recommend you try the Razor Pages tutorial before the MVC version. Razor Pages öğreticisi:The Razor Pages tutorial:

  • Daha kolay hale gelmelidir.Is easier to follow.
  • Daha fazla özellik içerir.Covers more features.
  • , Yeni uygulama geliştirmesi için tercih edilen yaklaşımdır.Is the preferred approach for new application development.

Bu bölümde, HelloWorldController bir ISTEMCIYE HTML yanıtları oluşturma işlemini düzgün bir şekilde kapsüllemek için şablon dosyalarını görüntüle öğesini kullanmak için sınıfını değiştirirsiniz.In this section you're going to modify the HelloWorldController class to use view template files to cleanly encapsulate the process of generating HTML responses to a client.

Razor görünüm altyapısınıkullanarak bir görünüm şablonu dosyası oluşturacaksınız.You'll create a view template file using the Razor view engine. Razor tabanlı görünüm şablonlarının . cshtml dosya uzantısı vardır ve C# kullanarak HTML çıktısı oluşturmak için zarif bir yol sağlar.Razor-based view templates have a .cshtml file extension, and provide an elegant way to create HTML output using C#. Razor, bir görünüm şablonu yazarken gereken karakter ve tuş vuruşlarının sayısını en aza indirir ve hızlı, akıcı bir kodlama iş akışını mümkün bir şekilde sunar.Razor minimizes the number of characters and keystrokes required when writing a view template, and enables a fast, fluid coding workflow.

Şu anda Index yöntemi, denetleyici sınıfında sabit kodlanmış bir ileti içeren bir dize döndürür.Currently the Index method returns a string with a message that is hard-coded in the controller class. IndexAşağıdaki kodda gösterildiği gibi, yöntemi, Controllers Görünüm yöntemini çağırmak için değiştirin:Change the Index method to call the controllers View method, as shown in the following code:

public ActionResult Index() 
{ 
    return View(); 
}

IndexYukarıdaki yöntem, TARAYıCıYA HTML yanıtı oluşturmak için bir görünüm şablonu kullanır.The Index method above uses a view template to generate an HTML response to the browser. Yukarıdaki yöntem gibi denetleyici Yöntemleri ( eylem yöntemleriolarak da bilinir), Index dize gibi basit türler değil, genellikle bir ActionResult (veya ActionResultöğesinden türetilmiş bir sınıf) döndürür.Controller methods (also known as action methods), such as the Index method above, generally return an ActionResult (or a class derived from ActionResult), not primitive types like string.

Views\helloworld klasörüne sağ tıklayın ve Ekle' ye ve ardından MVC 5 görünüm sayfası düzen (Razor) seçeneğine tıklayın.Right click the Views\HelloWorld folder and click Add, then click MVC 5 View Page with Layout (Razor).

Öğe Için ad belirtin Iletişim kutusunda Dizingirin ve ardından Tamam' a tıklayın.In the Specify Name for Item dialog box, enter Index, and then click OK.

Düzen sayfası seçin iletişim kutusunda varsayılan ** _ Layout. cshtml** dosyasını kabul edin ve Tamam' a tıklayın.In the Select a Layout Page dialog, accept the default _Layout.cshtml and click OK.

Yukarıdaki iletişim kutusunda, Görünüm \ paylaşılan klasörü sol bölmede seçilidir.In the dialog above, the Views\Shared folder is selected in the left pane. Başka bir klasörde özel bir düzen dosyanız varsa, bunu seçebilirsiniz.If you had a custom layout file in another folder, you could select it. Daha sonra öğreticide düzen dosyası hakkında konuşacağızWe'll talk about the layout file later in the tutorial

Mvcmovie\views\helloworld\ındex.cshtml dosyası oluşturulur.The MvcMovie\Views\HelloWorld\Index.cshtml file is created.

Aşağıdaki Vurgulanan biçimlendirmeyi ekleyin.Add the following highlighted markup.

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

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<p>Hello from our View Template!</p>

Index. cshtml dosyasına sağ tıklayın ve Tarayıcıda görüntüle' yi seçin.Right click the Index.cshtml file and select View in Browser.

PI

Ayrıca Index. cshtml dosyasına sağ tıklayıp sayfa denetçisinde görüntüle ' yi seçebilirsiniz.You can also right click the Index.cshtml file and select View in Page Inspector. Daha fazla bilgi için bkz. sayfa denetçisi öğreticisi .See the Page Inspector tutorial for more information.

Alternatif olarak, uygulamayı çalıştırın ve HelloWorld denetleyiciye ( http://localhost:xxxx/HelloWorld ) gidin.Alternatively, run the application and browse to the HelloWorld controller (http://localhost:xxxx/HelloWorld). IndexDenetleyicinizdeki yöntemi çok fazla iş gerçekleştirmedi; yalnızca metodunu çalıştırdığından return View() , metodun tarayıcıya yanıt işlemek için bir görünüm şablonu dosyası kullanması gerektiğini belirtti.The Index method in your controller didn't do much work; it simply ran the statement return View(), which specified that the method should use a view template file to render a response to the browser. Kullanılacak görünüm şablonu dosyasının adını açıkça belirtmediğinizden, ASP.NET MVC, \Views\helloworld klasöründeki Index. cshtml görünüm dosyasını kullanacak şekilde varsayılan olarak ' ı kullanır.Because you didn't explicitly specify the name of the view template file to use, ASP.NET MVC defaulted to using the Index.cshtml view file in the \Views\HelloWorld folder. Aşağıdaki görüntüde, Görünüm " şablonumuza ait Merhaba! " görünümde sabit kodlanmış dize gösterilmektedir.The image below shows the string "Hello from our View Template!" hard-coded in the view.

Oldukça iyi bir şekilde görünür.Looks pretty good. Ancak, tarayıcının başlık çubuğunda "Index-My ASP.NET Application" ifadesinin görüntülendiğine ve sayfanın en üstündeki büyük bağlantının "uygulama adı" olduğunu fark edeceksiniz.However, notice that the browser's title bar shows "Index - My ASP.NET Application," and the big link at the top of the page says "Application name." Tarayıcı pencerenizi ne kadar küçük olduğunuza bağlı olarak, giriş, hakkında, Iletişim, kayıt ve oturum açma bağlantılarında oturum açmak için sağ üst köşedeki üç çubuğu tıklamanızı gerekebilir.Depending on how small you make your browser window, you might need to click the three bars in the upper right to see the to the Home, About, Contact, Register and Log in links.

Görünümleri ve düzen sayfalarını değiştirmeChanging Views and Layout Pages

İlk olarak, " " sayfanın en üstündeki uygulama adı bağlantısını değiştirmek istersiniz.First, you want to change the "Application name" link at the top of the page. Bu metin her sayfada ortaktır.That text is common to every page. Aslında uygulamada her sayfada görünse de, projede yalnızca bir yerde uygulanır.It's actually implemented in only one place in the project, even though it appears on every page in the application. Çözüm Gezgini /views/Shared klasörüne gidin ve * _ Layout. cshtml* dosyasını açın.Go to the /Views/Shared folder in Solution Explorer and open the _Layout.cshtml file. Bu dosyaya bir Düzen sayfası denir ve diğer tüm sayfaların kullandığı paylaşılan klasörde bulunur.This file is called a layout page and it's in the shared folder that all other pages use.

_LayoutCshtml

Düzen şablonları, sitenizin HTML kapsayıcı yerleşimini tek bir yerde belirtmenize ve sonra sitenizdeki birden çok sayfaya uygulamanıza olanak tanır.Layout templates allow you to specify the HTML container layout of your site in one place and then apply it across multiple pages in your site. Satırı bulun @RenderBody() .Find the @RenderBody() line. RenderBody , oluşturduğunuz tüm görünüme özgü sayfaların, " Düzen sayfasında kaydırılan bir yer tutucudur " .RenderBody is a placeholder where all the view-specific pages you create show up, "wrapped" in the layout page. Örneğin, hakkında bağlantısını seçerseniz, Views\home\about.exe görünümü yöntemin içinde işlenir RenderBody .For example, if you select the About link, the Views\Home\About.cshtml view is rendered inside the RenderBody method.

Title öğesinin içeriğini değiştirin.Change the contents of the title element. Düzen şablonundaki ActionLink , " uygulama adından " " MVC filmi " ve denetleyiciyi ' dan Home Movies ' e kadar olan ActionLink değiştirin.Change the ActionLink in the layout template from "Application name" to "MVC Movie" and the controller from Home to Movies. Tüm düzen dosyası aşağıda gösterilmiştir:The complete layout file is shown below:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>@ViewBag.Title - Movie App</title>
    @Styles.Render("~/Content/css")
    @Scripts.Render("~/bundles/modernizr")

</head>
<body>
    <div class="navbar navbar-inverse navbar-fixed-top">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                @Html.ActionLink("MVC Movie", "Index", "Movies", null, new { @class = "navbar-brand" })
            </div>
            <div class="navbar-collapse collapse">
                <ul class="nav navbar-nav">
                    <li>@Html.ActionLink("Home", "Index", "Home")</li>
                    <li>@Html.ActionLink("About", "About", "Home")</li>
                    <li>@Html.ActionLink("Contact", "Contact", "Home")</li>
                </ul>
            </div>
        </div>
    </div>
    <div class="container body-content">
        @RenderBody()
        <hr />
        <footer>
            <p>&copy; @DateTime.Now.Year - My ASP.NET Application</p>
        </footer>
    </div>

    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/bootstrap")
    @RenderSection("scripts", required: false)
</body>
</html>

Uygulamayı çalıştırın ve şimdi MVC filmi belirten bir uyarı görürsünüz " " .Run the application and notice that it now says "MVC Movie ". Hakkında ' ya tıklayın ve bu sayfanın " MVC filmi de göster ' i nasıl göstertiğine bakabilirsiniz " .Click the About link, and you see how that page shows "MVC Movie", too. Düzen şablonunda değişikliği bir kez yapabildik ve sitedeki tüm sayfalar yeni başlığı yansıtmaktadır.We were able to make the change once in the layout template and have all pages on the site reflect the new title.

İlk olarak Views\helloworld\ındex.cshtml dosyasını oluşturduğumuz zaman aşağıdaki kodu içerir:When we first created the Views\HelloWorld\Index.cshtml file, it contained the following code:

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

Yukarıdaki Razor kodu, düzen sayfasını açıkça ayarlıyor.The Razor code above is explicitly setting the layout page. Görünümler \ _ViewStart. cshtml dosyasını inceleyin, tam olarak aynı Razor işaretlemesini içerir.Examine the Views\_ViewStart.cshtml file, it contains the exact same Razor markup. Görünümler \ _ViewStart. cshtml dosyası, tüm görünümlerin kullanacağı ortak düzeni tanımlar, bu nedenle söz konusu kodu Views\helloworld\ındex.cshtml dosyasından açıklama ekleyebilir veya kaldırabilirsiniz.The Views\_ViewStart.cshtml file defines the common layout that all views will use, therefore you can comment out or remove that code from the Views\HelloWorld\Index.cshtml file.

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

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<p>Hello from our View Template!</p>

LayoutÖzelliğini kullanarak farklı bir düzen görünümü ayarlayabilir veya bir null Düzen dosyası kullanılmayacak şekilde ayarlayabilirsiniz.You can use the Layout property to set a different layout view, or set it to null so no layout file will be used.

Şimdi Dizin görünümünün başlığını değiştirelim.Now, let's change the title of the Index view.

Mvcmovie\views\helloworld\ındex.cshtmldosyasını açın.Open MvcMovie\Views\HelloWorld\Index.cshtml. Değişiklik yapmak için iki yer vardır: ilk olarak, tarayıcının başlığında görünen metin ve ardından ikincil üst bilgi ( <h2> öğe).There are two places to make a change: first, the text that appears in the title of the browser, and then in the secondary header (the <h2> element). Uygulamanın parçası olan hangi kod bitini değiştireceğiz için bunları biraz farklı hale getirebilirsiniz.You'll make them slightly different so you can see which bit of code changes which part of the app.

@{
    ViewBag.Title = "Movie List";
}

<h2>My Movie List</h2>

<p>Hello from our View Template!</p>

Görüntülenecek HTML başlığını göstermek için, yukarıdaki kod Title nesnesinin bir özelliğini ayarlar ViewBag ( Index. cshtml görünüm şablonunda bulunan).To indicate the HTML title to display, the code above sets a Title property of the ViewBag object (which is in the Index.cshtml view template). Düzen şablonunun ( Views\shared \ _Layout. cshtml ) bu değeri, <title> <head> daha önce değiştirildiğimiz HTML bölümünün bir parçası olarak öğesini kullandığını unutmayın.Notice that the layout template ( Views\Shared\_Layout.cshtml ) uses this value in the <title> element as part of the <head> section of the HTML that we modified previously.

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>@ViewBag.Title - Movie App</title>
    @Styles.Render("~/Content/css")
    @Scripts.Render("~/bundles/modernizr")
</head>

Bu ViewBag yaklaşımı kullanarak, görünüm şablonunuz ve düzen dosyanız arasında kolayca başka parametreler geçirebilirsiniz.Using this ViewBag approach, you can easily pass other parameters between your view template and your layout file.

Uygulamayı çalıştırın.Run the application. Tarayıcı başlığı, birincil başlık ve ikincil başlıkların değiştirildiğini unutmayın.Notice that the browser title, the primary heading, and the secondary headings have changed. (Tarayıcıda değişiklik görmüyorsanız, önbelleğe alınmış içeriği görüntülüyor olabilirsiniz.(If you don't see changes in the browser, you might be viewing cached content. Sunucudan gelen yanıtı zorlamak için tarayıcınızda CTRL + F5 tuşlarına basın.) Tarayıcı başlığı ViewBag.Title Index. cshtml görünüm şablonunda ve " Düzen dosyasına eklenen ek film uygulamasına ayarlanmış olan ile oluşturulur " .Press Ctrl+F5 in your browser to force the response from the server to be loaded.) The browser title is created with the ViewBag.Title we set in the Index.cshtml view template and the additional "- Movie App" added in the layout file.

Ayrıca Index. cshtml görünüm şablonundaki içeriğin * _ Layout. cshtml* görünüm şablonuyla nasıl birleştirildiğini ve tarayıcıya tek bir HTML yanıtı gönderildiğini de unutmayın.Also notice how the content in the Index.cshtml view template was merged with the _Layout.cshtml view template and a single HTML response was sent to the browser. Düzen şablonları, uygulamanızdaki tüm sayfalara uygulanan değişiklikler yapmayı gerçekten kolaylaştırır.Layout templates make it really easy to make changes that apply across all of the pages in your application.

Çok az " veri " (Bu durumda, " görüntüleme şablonumuzdaki Merhaba! " iletisi) sabit kodlanmış, ancak.Our little bit of "data" (in this case the "Hello from our View Template!" message) is hard-coded, though. MVC uygulamasının bir " V " (görünüm) ve bir C (Controller) var " " , ancak " " henüz M (model) yok.The MVC application has a "V" (view) and you've got a "C" (controller), but no "M" (model) yet. Kısa süre içinde, bir veritabanının nasıl oluşturulduğunu ve model verilerinin nasıl alınacağını adım adım inceleyeceğiz.Shortly, we'll walk through how to create a database and retrieve model data from it.

Denetleyiciden görünüme veri geçirmePassing Data from the Controller to the View

Bir veritabanına gitmekten ve modeller hakkında konuşmadan önce, ilk olarak denetleyiciden bir görünüme bilgi geçirme konusunda konuşalım.Before we go to a database and talk about models, though, let's first talk about passing information from the controller to a view. Denetleyici sınıfları gelen bir URL isteğine yanıt olarak çağrılır.Controller classes are invoked in response to an incoming URL request. Bir denetleyici sınıfı, gelen tarayıcı isteklerini işleyen, veritabanından veri alan ve son olarak tarayıcıya ne tür bir yanıt gönderileceğini karar veren kodu yazdığınız yerdir.A controller class is where you write the code that handles the incoming browser requests, retrieves data from a database, and ultimately decides what type of response to send back to the browser. Daha sonra Görünüm şablonları, tarayıcıya HTML yanıtı oluşturmak ve biçimlendirmek için bir denetleyiciden kullanılabilir.View templates can then be used from a controller to generate and format an HTML response to the browser.

Bir görünüm şablonunun tarayıcıya yanıt oluşturması için gereken verilerin veya nesnelerin sağlanmasından denetleyiciler sorumludur.Controllers are responsible for providing whatever data or objects are required in order for a view template to render a response to the browser. En iyi yöntem: bir görünüm şablonu asla iş mantığı gerçekleştirmemelidir veya doğrudan bir veritabanıyla etkileşime sahip olmalıdır.A best practice: A view template should never perform business logic or interact with a database directly. Bunun yerine, bir görünüm şablonu yalnızca denetleyici tarafından sunulan verilerle birlikte çalışmalıdır.Instead, a view template should work only with the data that's provided to it by the controller. Bu sorunların " ayrılmasını sürdürmek " , kodunuzun temiz, test edilebilir ve daha sürdürülebilir olmasını sağlar.Maintaining this "separation of concerns" helps keep your code clean, testable and more maintainable.

Şu anda, Welcome sınıfındaki Action yöntemi HelloWorldController bir name ve numTimes parametresini alır ve sonra değerleri doğrudan tarayıcıya çıkarır.Currently, the Welcome action method in the HelloWorldController class takes a name and a numTimes parameter and then outputs the values directly to the browser. Denetleyicinin bu yanıtı bir dize olarak işlemesini sağlamak yerine, denetleyiciyi bir görünüm şablonu kullanacak şekilde değiştirelim.Rather than have the controller render this response as a string, let's change the controller to use a view template instead. Görünüm şablonu dinamik bir yanıt oluşturur, bu, yanıtı oluşturmak için denetleyiciden uygun veri bitlerini görünüme geçirmeniz gerektiği anlamına gelir.The view template will generate a dynamic response, which means that you need to pass appropriate bits of data from the controller to the view in order to generate the response. Bu, denetleyicinin, görünüm şablonunun erişebileceği bir nesne için gerektirdiği dinamik verileri (parametreler) yerleştirerek bunu yapabilirsiniz ViewBag .You can do this by having the controller put the dynamic data (parameters) that the view template needs in a ViewBag object that the view template can then access.

HelloWorldController.cs dosyasına dönün ve Welcome nesnesine bir ve değeri eklemek için yöntemini değiştirin Message NumTimes ViewBag .Return to the HelloWorldController.cs file and change the Welcome method to add a Message and NumTimes value to the ViewBag object. ViewBag dinamik bir nesnedir, bu, içinde istediğiniz her şeyi koyabileceğiniz anlamına gelir; ViewBag nesnenin içine bir öğe yerleştirene kadar tanımlanmış özellikleri yok.ViewBag is a dynamic object, which means you can put whatever you want in to it; the ViewBag object has no defined properties until you put something inside it. ASP.NET MVC model bağlama sistemi , adlandırılmış parametreleri ( name ve numTimes ) adres çubuğundaki sorgu dizesinden yöntemdeki parametrelere otomatik olarak eşler.The ASP.NET MVC model binding system automatically maps the named parameters (name and numTimes) from the query string in the address bar to parameters in your method. Tüm HelloWorldController.cs dosyası şuna benzer:The complete HelloWorldController.cs file looks like this:

using System.Web;
using System.Web.Mvc;

namespace MvcMovie.Controllers
{
    public class HelloWorldController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }

        public ActionResult Welcome(string name, int numTimes = 1)
        {
            ViewBag.Message = "Hello " + name;
            ViewBag.NumTimes = numTimes;

            return View();
        }
    }
}

Artık ViewBag nesne görünüme otomatik olarak geçirilecek verileri içerir.Now the ViewBag object contains data that will be passed to the view automatically. Daha sonra bir hoş geldiniz görünüm şablonunuz olması gerekir!Next, you need a Welcome view template! Projenin derlendiğinden Build emin olmak için Build (veya Ctrl + Shift + B) öğesini seçin.In the Build menu, select Build Solution (or Ctrl+Shift+B) to make sure the project is compiled. Views\helloworld klasörüne sağ tıklayın ve Ekle' ye ve ardından MVC 5 görünüm sayfası düzen (Razor) seçeneğine tıklayın.Right click the Views\HelloWorld folder and click Add, then click MVC 5 View Page with Layout (Razor).

Öğe Için ad belirtin Iletişim kutusunda hoş geldinizyazın ve ardından Tamam' a tıklayın.In the Specify Name for Item dialog box, enter Welcome, and then click OK.

Düzen sayfası seçin iletişim kutusunda varsayılan ** _ Layout. cshtml** dosyasını kabul edin ve Tamam' a tıklayın.In the Select a Layout Page dialog, accept the default _Layout.cshtml and click OK.

Mvcmovie\views\helloworld\welcome.cshtml dosyası oluşturulur.The MvcMovie\Views\HelloWorld\Welcome.cshtml file is created.

Welcome. cshtml dosyasındaki biçimlendirmeyi değiştirin.Replace the markup in the Welcome.cshtml file. "Kullanıcı tarafından söylenecek kadar Merhaba bir döngü oluşturacaksınız " .You'll create a loop that says "Hello" as many times as the user says it should. Tüm Welcome. cshtml dosyası aşağıda gösterilmiştir.The complete Welcome.cshtml file is shown below.

@{
    ViewBag.Title = "Welcome";
}

<h2>Welcome</h2>

<ul>
    @for (int i = 0; i < ViewBag.NumTimes; i++)
    {
        <li>@ViewBag.Message</li>
    }
</ul>

Uygulamayı çalıştırın ve aşağıdaki URL 'ye gidin:Run the application and browse to the following URL:

http://localhost:xx/HelloWorld/Welcome?name=Scott&numtimes=4

Artık veriler URL 'den alınır ve model cildikullanılarak denetleyiciye geçirilir.Now data is taken from the URL and passed to the controller using the model binder. Denetleyici, verileri bir ViewBag nesnesine paketler ve bu nesneyi görünüme geçirir.The controller packages the data into a ViewBag object and passes that object to the view. Daha sonra Görünüm, verileri kullanıcıya HTML olarak görüntüler.The view then displays the data as HTML to the user.

Yukarıdaki örnekte, ViewBag denetleyicideki verileri bir görünüme geçirmek için bir nesne kullandık.In the sample above, we used a ViewBag object to pass data from the controller to a view. Öğreticide daha sonra, bir denetleyicideki verileri bir görünüme geçirmek için bir görünüm modeli kullanacağız.Later in the tutorial, we will use a view model to pass data from a controller to a view. Veri geçirme yaklaşımını görüntüleme yaklaşımı, görünüm paketi yaklaşımına göre genellikle çok tercih edilir.The view model approach to passing data is generally much preferred over the view bag approach. Daha fazla bilgi için bkz. blog girdisi dinamik türü kesin belirlenmiş görünümler .See the blog entry Dynamic V Strongly Typed Views for more information.

Bu, " model için bir d türüdür " , ancak veritabanı türü değildir.Well, that was a kind of an "M" for model, but not the database kind. Öğrendiklerimizi ve bir film veritabanı oluşturmamızı görelim.Let's take what we've learned and create a database of movies.