# 1.1.The Complete ASP.NET MVC 5 Course

- [1.0. Deploy .NET project to IIS](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/10-deploy-net-project-to-iis.md)
- [1.1.Getting started](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/11getting-started.md)
- [1.1.1.MVC Architectural](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/11getting-started/111.md)
- [1.1.2.Setting up the development environment](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/11getting-started/112setting-up-the-development-environment.md)
- [1.1.3.Create MVC APP](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/11getting-started/113create-mvc-app.md)
- [1.1.4.Add a new Model, Controller, View](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/11getting-started/114add-a-new-model-controller-view.md)
- [1.2.ASP.NET MVC Fundamentals](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/12aspnet-mvc-fundamentals.md)
- [1.2.1.Action](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/12aspnet-mvc-fundamentals/121action.md)
- [1.2.2.Route](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/12aspnet-mvc-fundamentals/122route.md)
- [1.2.3.Pass data to views](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/12aspnet-mvc-fundamentals/123pass-data-to-views.md)
- [1.2.4.ViewModel](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/12aspnet-mvc-fundamentals/124viewmodel.md)
- [1.2.5.View](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/12aspnet-mvc-fundamentals/125view.md)
- [1.3.Working with data](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/13working-with-data.md)
- [1.3.1.Entity framework](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/13working-with-data/131entity-framework.md)
- [1.3.2.Database First v.s. Code First](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/13working-with-data/132database-first-vs-code-first.md)
- [1.3.3.Code-first Migrations](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/13working-with-data/133code-first-migrations.md)
- [1.3.4.Seeding the database](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/13working-with-data/135seeding-the-database.md)
- [1.3.5.Overriding conventions](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/13working-with-data/135overriding-conventions.md)
- [1.3.6.Query objects](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/13working-with-data/136query-objects.md)
- [1.4.Building Forms](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/14building-forms.md)
- [1.4.1.The Markup (labelFor, textbox, checkbox)](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/14building-forms/141the-markup.md)
- [1.4.2.Labels](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/14building-forms/142labels.md)
- [1.4.3.Drop down list](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/14building-forms/143drop-down-list.md)
- [1.4.4.Model binding and save data](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/14building-forms/144model-binding.md)
- [1.4.5.Edit form](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/14building-forms/145edit-form.md)
- [1.5.Implement validation](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/15implement-validation.md)
- [1.5.1.Adding validation](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/15implement-validation/151adding-validation.md)
- [1.5.2.Data annotation](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/15implement-validation/152data-annotation.md)
- [1.5.3.Client side validation](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/15implement-validation/153client-side-validation.md)
- [1.5.4.Anti-forgery Tokens](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/15implement-validation/154anti-forgery-tokens.md)
- [1.6. Building RESTful API](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/16-building-restful-api.md)
- [1.6.1. What is Web API?](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/16-building-restful-api/161-what-is-web-api.md)
- [1.6.2. RESTful convetion](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/16-building-restful-api/162-restful-convetion.md)
- [1.6.3. Building a API and testing](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/16-building-restful-api/163-building-a-api.md)
- [1.6.4. Data Transfer Object](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/16-building-restful-api/164-data-transfer-object.md)
- [1.6.5. Use camel annotation](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/16-building-restful-api/165-use-camel-annotation.md)
- [1.6.6. Use IHttpActionResult](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/16-building-restful-api/167-use-ihttpactionresult.md)
- [1.7.Client-side Development](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/17client-side-development.md)
- [1.7.1.Calling an API using jQuery](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/17client-side-development/171calling-an-api-using-jquery.md)
- [1.7.2.Bootbox plug-in](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/17client-side-development/172bootbox-plug-in.md)
- [1.7.3.DataTable plug-in using AJAX source](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/17client-side-development/173datatable-plug-in.md)
- [1.7.4.Returning Hierarchical Data](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/17client-side-development/174returning-hierarchical-data.md)
- [1.8.Authentication and Authorization](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/18authentication-and-authorization.md)
- [1.8.1.The problem](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/18authentication-and-authorization/181the-problem.md)
- [1.8.2.Authentication options](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/18authentication-and-authorization/182authentication-options.md)
- [1.8.3.Restricting Access](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/18authentication-and-authorization/183aspnet-identity.md)
- [1.8.4.Seeding Users and Roles](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/18authentication-and-authorization/184seeding-users-and-roles.md)
- [1.8.5.Working with Roles](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/18authentication-and-authorization/185working-with-roles.md)
- [1.8.6.Adding Profile Data](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/18authentication-and-authorization/186adding-profile-data.md)
- [1.8.7.OAuth](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/18authentication-and-authorization/187oauth.md)
- [1.8.8.Social Logins](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/18authentication-and-authorization/188social-logins.md)
- [1.9.Performance Optimization](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/19performance-optimization.md)
- [1.9.1.Overview](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/19performance-optimization/191overview.md)
- [1.9.2.Data Tier](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/19performance-optimization/192data-tier.md)
- [1.9.3.Glimpse](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/19performance-optimization/193glimpse.md)
- [1.9.4.Output Cache](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/19performance-optimization/194output-cache.md)
- [1.9.5.Data Cache](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/19performance-optimization/195data-cache.md)
- [1.9.6.Async](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/19performance-optimization/196async.md)
- [1.9.7.Disabling Session](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/19performance-optimization/197disabling-session.md)
- [1.9.8.Client Tier](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/19performance-optimization/198client-tier.md)
- [1.10.Building a Feature End-to-End Systematically](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/110building-a-feature-end-to-end-systematically.md)
- [1.10.1.Domain Modelling](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/110building-a-feature-end-to-end-systematically/1101domain-modelling.md)
- [1.10.2.Adding Auto-completion](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/110building-a-feature-end-to-end-systematically/1102adding-auto-completion.md)
- [1.10.3.Updating the DOM](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/110building-a-feature-end-to-end-systematically/1103updating-the-dom.md)
- [1.10.4.Implementing Client-side Validation](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/110building-a-feature-end-to-end-systematically/1104implementing-client-side-validation.md)
- [1.11.Deployment](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/111deployment.md)
- [1.11.1.Deploying the application](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/111deployment/1111deploying-the-application.md)
- [1.11.2.Deploying the database](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/111deployment/1112deploying-the-database.md)
- [1.11.3.Build configurations](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/111deployment/1113build-configurations.md)
- [1.11.4.Application settings](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/111deployment/1114application-settings.md)
- [1.11.5.Custom Error Pages](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/111deployment/1115custom-error-pages.md)
- [1.11.6.Logging Unhandled Exceptions](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/111deployment/1116logging-unhandled-exceptions.md)
- [1.12.Approved collection server](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/112approved-collection-server.md)
- [1.12.1.Overview](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/112approved-collection-server/1121overview.md)
- [1.12.2.測試上傳審批資料](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/112approved-collection-server/1122ce-shi-shang-chuan-zi-liao.md)
- [1.12.3.取得Token的方式](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/112approved-collection-server/1122qu-de-token-de-fang-shi.md)
- [1.12.4.測試取得審批資料, Log資料](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/112approved-collection-server/1124ce-shi-qu-de-zi-liao.md)
- [1.12.5.將API接口綁定到雲之家審批](/asp-net/chapter1/1.1.the-complete-asp.net-mvc-5-course/112approved-collection-server/1125jiang-api-jie-kou-bang-ding-dao-yun-zhi-jia-shen-pi.md)
