Table of Contents
Preface
Chapter 1: Working with the View
Chapter 2: Taking Action in Your Controllers
Chapter 3: Routing
Chapter 4: Master Pages
Chapter 5: Working with Data in the View
Chapter 6: Working with Forms
Chapter 7: Simplifying Complex Applications
Chapter 8: Validating MVC
Chapter 9: Data Access and Storage
Chapter 10: Application, Session, Cookies, and Caching
Index
- Chapter 1: Working with the View
- Introduction
- Using magic strings and the ViewData dictionary
- Creating a strongly typed view
- Decoupling a strongly typed view with a View model
- Centralizing display logic with templated helpers
- Using a partial view to segment view code
- Rendering a child view with Html.RenderAction
- Loading a view template from a database with NVelocity
- Consuming a JSON with jQuery
- Chapter 2: Taking Action in Your Controllers
- Introduction
- Exposing JSON using a JsonResult with Json.NET
- A custom ActionResult to return an image
- Specifying the size of an ImageResult
- Creating a CAPTCHA system
- Generating a PDF order summary
- Implementing a controller factory for use with StructureMap
- Chapter 3: Routing
- Introduction
- Creating a route to support a reporting engine
- Making hackable URLs for a product catalog
- Filter your matches with routing constraints
- Using wildcard parameters to support slug URLs
- Creating a 404 page via routing
- Moving routes out of Global.asax
- Supporting pagination in your URLs
- Supporting content hierarchies with a custom RouteHandler
- Creating a blacklist route constraint
- Chapter 4: Master Pages
- Introduction
- How to create a master page
- Determining the master page in the ActionResult
- Controlling which master page is used with a view base class
- Setting the master page from a controller base class
- Passing data to the master page
- Rendering data in a master page from another view
- Creating nested master pages
- Chapter 5: Working with Data in the View
- Introduction
- Reintroducing for and foreach
- Handling an array of checkboxes
- Handling an array of radio buttons
- Working with a pageable set of data
- How to navigate sortable data
- Deleting a record with an intermediary "Are you sure?" page
- Adding a jQuery delete link with confirmation
- Master/detail page with inline details via jQuery and a partial view
- Creating a master/detail page with modal pop-up and JSON
- Chapter 6: Working with Forms
- Introduction
- Using HTML helpers to create forms
- Building a custom HTML helper to display a WYSIWYG
- Centralizing create and edit forms for reuse
- Adding custom attributes to form elements
- Defining a default button with jQuery
- Hijaxing a form with jQuery
- Performing an auto post-back with a select list
- Autocomplete with jQuery UI
- Chapter 7: Simplifying Complex Applications
- Introduction
- Centralized formatting of common types with templated helpers
- Making templated helpers for custom types
- Using areas to separate application components
- Creating a "portable area" to use across multiple applications
- Using input builders of MvcContrib
- Generating forms with Html.InputForm()
- Leaving breadcrumbs for your users with MvcSiteMap
- Displaying tabular data in a grid
- Chapter 8: Validating MVC
- Introduction
- Basic input validation
- Data annotations
- Client-side validation with jQuery
- Custom validators
- Remote validation with jQuery
- Chapter 9: Data Access and Storage
- Introduction
- Mocking your data layer with NBuilder
- Adding support for LINQ to SQL
- Going old school with ADO.NET
- XML documents as a data store
- Chapter 10: Application, Session, Cookies, and Caching
- Introduction
- Keeping track of anonymous visitors versus logged-in users
- Maintaining a user's information while at your site
- Remembering a previous visitor
- Caching your product catalog for faster response times
- Using output caching to cache an entire page
- Using partial views to cache pieces of a page individually
- Exposing an application API to your presentation layer