Zhiming Jiang
@lanvige
lanvige@gmail.com
URL Routing
Rule
Extented Routing
MVC Role
Model
Validation
Model Binding
Validation
Controller Action
Receiving Input
QueryString
Request.Form
FormCollection
Custome(IModelBinding)
Async Action
Filter
Level
Controller
Action
IActionFilter
OnActionExcuting
OnActionExcuted
IResultFilter
OnResultExecuting
OnResultExecuted
IAuthorizationFilters
OnAuthorization
IExceptionFilter
OnException
Order
ActionFilterAttribute
OutputCacheAttribute
AuthorizeAttribute
ValidateInputAttribute
ValidateAntiforgeryTokenAttribute
HandleErrorAttribute
Class hierarchy of ASP.NET MVC’s built-in filter
FilterAttribute
Producing Output
Action Result
ViewResult
ContentResult
RedirectResult
JsonResult
JavaScriptResult
EmptyResult
FileResult
FileContentResult
FilePathResult
FileStreamResult
TempData
View Data
PartialView
View Model
How defines
End with the word Controller
Inherit from System.Web.Mvc.Controller (or implement IController
Contain public methods that return ActionResult
View
ViewEngine
ViewPage
StrongType
View Data
ViewModel
HTML Helper
RenderPartial
Using MasterPage
Partial views
Form Posting
Validation and Error Reporting
Customizing & Extending
Extending URL Routing
Custom ControllerFactory
Leveraging IoC for Controllers
Extending the Controller & Action
Custom View Engine
Custom T4 Templates
Introduction
What's ASP.Net MVC
MVC Pattern
Model
View
Controller
Why ASP.Net MVC
Full control over HTML
Full control over URLs
Better separation of concerns
Extensibility
Testability
Differents
1
REST/POST
Postback
2
Controller
Page and control lifecycle
3
Separate controller
Code behind
MVC Life Cycle
Routing
MvcHandler
ControllerActionInvoker
ViewResult
ControllerContext
2.0 Features
Areas
Dynamic Scaffolding
Enhanced Model Validation
Asynchronous Controllers support
rendering sub-sections
Important
HttpApplication
Application_Start
Application_BeginRequest
HttpContextBase
HttpContextWrapper
HttpContext
Q/A
Convention Over Configuration
MVC and 3 tier architecture
Leveraging Existing ASP.NET Features
Practices
Unit test
Principle
routes
controllers
custom model binders
action filters
Mocks
Moq
Lambda available
Rhino.Mocks
Full-featured &
Powerful
Full System Testing
AJAX
jQuery
Microsoft Ajax
Scaling the Architecture
Data Access
Project & Extentions
MVC Contrib
MVC Membership
Oxite 2
NerdDinner
Subtopic 4
Customizing VS for MVC
T4 Templete
Security
Authentication
authorization
AuthorizeAttribute
XSS
Dependency Injection of Controllers