Controller Class

Provides methods that respond to HTTP requests that are made to an ASP.NET MVC Web site.

Inheritance Hierarchy

System.Object
  System.Web.Mvc.ControllerBase
    System.Web.Mvc.Controller
      System.Web.Mvc.AsyncController

Namespace:  System.Web.Mvc
Assembly:  System.Web.Mvc (in System.Web.Mvc.dll)

Syntax

'Declaration
Public MustInherit Class Controller _
    Inherits ControllerBase _
    Implements IActionFilter, IAuthorizationFilter, IDisposable, IExceptionFilter,  _
    IResultFilter
public abstract class Controller : ControllerBase, 
    IActionFilter, IAuthorizationFilter, IDisposable, IExceptionFilter, IResultFilter
public ref class Controller abstract : public ControllerBase, 
    IActionFilter, IAuthorizationFilter, IDisposable, IExceptionFilter, IResultFilter

The Controller type exposes the following members.

Constructors

  Name Description
Protected method Controller Initializes a new instance of the Controller class.

Top

Properties

  Name Description
Public property ActionInvoker Gets the action invoker for the controller.
Protected property Binders Gets or sets the binder.
Public property ControllerContext Gets or sets the controller context. (Inherited from ControllerBase.)
Public property HttpContext Gets HTTP-specific information about an individual HTTP request.
Public property ModelState Gets the model state dictionary object that contains the state of the model and of model-binding validation.
Public property Request Gets the HttpRequestBase object for the current HTTP request.
Public property Response Gets the HttpResponseBase object for the current HTTP response.
Public property RouteData Gets the route data for the current request.
Public property Server Gets the HttpServerUtilityBase object that provides methods that are used during Web request processing.
Public property Session Gets the HttpSessionStateBase object for the current HTTP request.
Public property TempData Gets or sets the dictionary for temporary data. (Inherited from ControllerBase.)
Public property TempDataProvider Gets the temporary-data provider object that is used to store data for the next request.
Public property Url Gets the URL helper object that is used to generate URLs by using routing.
Public property User Gets the user security information for the current HTTP request.
Public property ValidateRequest Gets or sets a value that indicates whether request validation is enabled for this request. (Inherited from ControllerBase.)
Public property ValueProvider Gets or sets the value provider for the controller. (Inherited from ControllerBase.)
Public property ViewData Gets or sets the dictionary for view data. (Inherited from ControllerBase.)

Top

Methods

  Name Description
Protected method Content(String) Creates a content result object by using a string.
Protected method Content(String, String) Creates a content result object by using a string and the content type.
Protected method Content(String, String, Encoding) Creates a content result object by using a string, the content type, and content encoding.
Protected method CreateActionInvoker Creates an action invoker.
Protected method CreateTempDataProvider Creates a temporary data provider.
Public method Dispose() Releases all resources that are used by the current instance of the Controller class.
Protected method Dispose(Boolean) Releases unmanaged resources and optionally releases managed resources.
Public method Equals Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected method Execute Executes the specified request context. (Inherited from ControllerBase.)
Protected method ExecuteCore Invokes the action in the current controller context. (Overrides ControllerBase.ExecuteCore().)
Protected method File(array<Byte[], String) Creates a FileContentResult object by using the file contents and file type.
Protected method File(Stream, String) Creates a FileStreamResult object by using the Stream object and content type.
Protected method File(String, String) Creates a FilePathResult object by using the file name and the content type.
Protected method File(array<Byte[], String, String) Creates a FileContentResult object by using the file contents, content type, and the destination file name.
Protected method File(Stream, String, String) Creates a FileStreamResult object using the Stream object, the content type, and the target file name.
Protected method File(String, String, String) Creates a FilePathResult object by using the file name, the content type, and the file download name.
Protected method Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Protected method HandleUnknownAction Called when a request matches this controller, but no method with the specified action name is found in the controller.
Protected method Initialize Initializes data that might not be available when the constructor is called. (Overrides ControllerBase.Initialize(RequestContext).)
Protected method JavaScript Creates a JavaScriptResult object.
Protected method Json(Object) Creates a JsonResult object that serializes the specified object to JavaScript Object Notation (JSON).
Protected method Json(Object, String) Creates a JsonResult object that serializes the specified object to JavaScript Object Notation (JSON) format.
Protected method Json(Object, JsonRequestBehavior) Creates a JsonResult object that serializes the specified object to JavaScript Object Notation (JSON) format using the specified JSON request behavior.
Protected method Json(Object, String, Encoding) Creates a JsonResult object that serializes the specified object to JavaScript Object Notation (JSON) format.
Protected method Json(Object, String, JsonRequestBehavior) Creates a JsonResult object that serializes the specified object to JavaScript Object Notation (JSON) format using the specified content type and JSON request behavior.
Protected method Json(Object, String, Encoding, JsonRequestBehavior) Creates a JsonResult object that serializes the specified object to JavaScript Object Notation (JSON) format using the content type, content encoding, and the JSON request behavior.
Protected method MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Protected method OnActionExecuted Called after the action method is invoked.
Protected method OnActionExecuting Called before the action method is invoked.
Protected method OnAuthorization Called when authorization occurs.
Protected method OnException Called when an unhandled exception occurs in the action.
Protected method OnResultExecuted Called after the action result that is returned by an action method is executed.
Protected method OnResultExecuting Called before the action result that is returned by an action method is executed.
Protected method PartialView() Creates a PartialViewResult object that renders a partial view.
Protected method PartialView(Object) Creates a PartialViewResult object that renders a partial view, by using the specified model.
Protected method PartialView(String) Creates a PartialViewResult object that renders a partial view, by using the specified view name.
Protected method PartialView(String, Object) Creates a PartialViewResult object that renders a partial view, by using the specified view name and model.
Protected method Redirect Creates a RedirectResult object that redirects to the specified URL.
Protected method RedirectToAction(String) Redirects to the specified action using the action name.
Protected method RedirectToAction(String, Object) Redirects to the specified action using the action name and route values.
Protected method RedirectToAction(String, String) Redirects to the specified action using the action name and controller name.
Protected method RedirectToAction(String, RouteValueDictionary) Redirects to the specified action using the action name and route dictionary.
Protected method RedirectToAction(String, String, Object) Redirects to the specified action using the action name, controller name, and route values.
Protected method RedirectToAction(String, String, RouteValueDictionary) Redirects to the specified action using the action name, controller name, and route dictionary.
Protected method RedirectToRoute(Object) Redirects to the specified route using the specified route values.
Protected method RedirectToRoute(String) Redirects to the specified route using the route name.
Protected method RedirectToRoute(RouteValueDictionary) Redirects to the specified route using the route dictionary.
Protected method RedirectToRoute(String, Object) Redirects to the specified route using the route name and route values.
Protected method RedirectToRoute(String, RouteValueDictionary) Redirects to the specified route using the route name and route dictionary.
Public method ToString Returns a string that represents the current object. (Inherited from Object.)
Protected method TryUpdateModel<TModel>(TModel) Updates the specified model instance using values from the controller's current value provider.
Protected method TryUpdateModel<TModel>(TModel, String) Updates the specified model instance using values from the controller's current value provider and a prefix.
Protected method TryUpdateModel<TModel>(TModel, array<String[]) Updates the specified model instance using values from the controller's current value provider and included properties.
Protected method TryUpdateModel<TModel>(TModel, IValueProvider) Updates the specified model instance using values from the value provider.
Protected method TryUpdateModel<TModel>(TModel, String, array<String[]) Updates the specified model instance using values from the controller's current value provider, a prefix, and included properties.
Protected method TryUpdateModel<TModel>(TModel, String, IValueProvider) Updates the specified model instance using values from the value provider and a prefix.
Protected method TryUpdateModel<TModel>(TModel, array<String[], IValueProvider) Updates the specified model instance using values from the value provider and a list of properties to include.
Protected method TryUpdateModel<TModel>(TModel, String, array<String[], array<String[]) Updates the specified model instance using values from the controller's current value provider, a prefix, a list of properties to exclude, and a list of properties to include.
Protected method TryUpdateModel<TModel>(TModel, String, array<String[], IValueProvider) Updates the specified model instance using values from the value provider, a prefix, and included properties.
Protected method TryUpdateModel<TModel>(TModel, String, array<String[], array<String[], IValueProvider) Updates the specified model instance using values from the value provider, a prefix, a list of properties to exclude , and a list of properties to include.
Protected method TryValidateModel(Object) Validates the specified model instance.
Protected method TryValidateModel(Object, String) Validates the specified model instance using an HTML prefix.
Protected method UpdateModel<TModel>(TModel) Updates the specified model instance using values from the controller's current value provider.
Protected method UpdateModel<TModel>(TModel, String) Updates the specified model instance using values from the controller's current value provider and a prefix.
Protected method UpdateModel<TModel>(TModel, array<String[]) Updates the specified model instance using values from the controller object's current value provider.
Protected method UpdateModel<TModel>(TModel, IValueProvider) Updates the specified model instance using values from the value provider.
Protected method UpdateModel<TModel>(TModel, String, array<String[]) Updates the specified model instance using values from the controller's current value provider, a prefix, and included properties.
Protected method UpdateModel<TModel>(TModel, String, IValueProvider) Updates the specified model instance using values from the value provider and a prefix.
Protected method UpdateModel<TModel>(TModel, array<String[], IValueProvider) Updates the specified model instance using values from the value provider, a prefix, and a list of properties to include.
Protected method UpdateModel<TModel>(TModel, String, array<String[], array<String[]) Updates the specified model instance using values from the controller's current value provider, a prefix, a list of properties to exclude, and a list of properties to include.
Protected method UpdateModel<TModel>(TModel, String, array<String[], IValueProvider) Updates the specified model instance using values from the value provider, a prefix, and a list of properties to include.
Protected method UpdateModel<TModel>(TModel, String, array<String[], array<String[], IValueProvider) Updates the specified model instance using values from the value provider, a prefix, a list of properties to exclude, and a list of properties to include.
Protected method ValidateModel(Object) Validates the specified model instance.
Protected method ValidateModel(Object, String) Validates the specified model instance using an HTML prefix.
Protected method View() Creates a ViewResult object that renders a view to the response.
Protected method View(Object) Creates a ViewResult object by using the model that renders a view to the response.
Protected method View(String) Creates a ViewResult object by using the view name that renders a view.
Protected method View(IView) Creates a ViewResult object that renders the specified IView object.
Protected method View(String, Object) Creates a ViewResult object by using the view name and model that renders a view to the response.
Protected method View(String, String) Creates a ViewResult object using the view name and master-page name that renders a view to the response.
Protected method View(IView, Object) Creates a ViewResult object that renders the specified IView object.
Protected method View(String, String, Object) Creates a ViewResult object using the view name, master-page name, and model that renders a view.

Top

Explicit Interface Implementations

  Name Description
Explicit interface implemetationPrivate method IActionFilter.OnActionExecuted This API supports the MVC infrastructure and is not intended to be used directly from your code. This method calls the OnActionExecuted method.
Explicit interface implemetationPrivate method IActionFilter.OnActionExecuting This API supports the MVC infrastructure and is not intended to be used directly from your code. This method calls the OnActionExecuting method.
Explicit interface implemetationPrivate method IAuthorizationFilter.OnAuthorization This API supports the MVC infrastructure and is not intended to be used directly from your code. This method calls the OnAuthorization method.
Explicit interface implemetationPrivate method IController.Execute Executes the specified request context. (Inherited from ControllerBase.)
Explicit interface implemetationPrivate method IExceptionFilter.OnException This API supports the MVC infrastructure and is not intended to be used directly from your code. This method calls the OnException method.
Explicit interface implemetationPrivate method IResultFilter.OnResultExecuted This API supports the MVC infrastructure and is not intended to be used directly from your code. This method calls the OnResultExecuted method.
Explicit interface implemetationPrivate method IResultFilter.OnResultExecuting This API supports the MVC infrastructure and is not intended to be used directly from your code. This method calls the OnResultExecuting method.

Top

Remarks

A controller class name must end with "Controller". For example, a Product controller can be named ProductController but not Product or ProductCtrl.

Controller action methods respond to requests that are sent to the controller. Controller action methods have the following restrictions:

  • Action methods must be public.

  • Action methods cannot be static.

  • Action methods cannot have unbounded generic type parameters. An unbounded generic type parameter has an empty parameter list. An unbounded generic type is also known as an open generic type. For information about unbounded generic type parameters, see the section "Unbounded Type Parameters" in Constraints on Type Parameters (C# Programming Guide).

  • Action methods cannot be overloaded based on parameters. Action methods can be overloaded when they are disambiguated with attributes such as NonActionAttribute or AcceptVerbsAttribute.

The following table lists the types that a controller action method can return and the scenarios for which the types are returned.

Return type

Control action return

void or null

The ControllerActionInvoker object returns an EmptyResult object.

ActionResult

The ControllerActionInvoker object calls the ExecuteResult method on the result.

Object (excluding ActionResult)

The result is passed to a CreateActionResult, which creates a new ContentResult object. The Content method of the ContentResult object is set to the invariant string representation of the returned object.

Examples

A Visual Studio project with source code is available to accompany this topic: Download.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

See Also

Reference

System.Web.Mvc Namespace