<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/back-to-the-future-exploring-asp-net-mvc-futures-pfyzyq0i6" -->

---
title: Back to the future! Exploring ASP.NET MVC Futures
description: A tour of the ASP.NET MVC Futures assembly, an add-on package for ASP.NET MVC 1.0 containing experimental features not yet baked into the core framework....
canonical: https://daily.dev/posts/back-to-the-future-exploring-asp-net-mvc-futures-pfyzyq0i6
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Back to the future! Exploring ASP.NET MVC Futures | daily.dev
og:description: A tour of the ASP.NET MVC Futures assembly, an add-on package for ASP.NET MVC 1.0 containing experimental features not yet baked into the core framework....
og:url: https://daily.dev/posts/back-to-the-future-exploring-asp-net-mvc-futures-pfyzyq0i6
og:image: https://api.daily.dev/og/posts/pfyzYQ0i6.png
og:image:alt: Back to the future! Exploring ASP.NET MVC Futures
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Back to the future! Exploring ASP.NET MVC Futures

**[Maarten Balliauw](https://daily.dev/sources/maartenballiauw)** · 7 min read · 0 upvotes · 0 comments

## Summary

A tour of the ASP.NET MVC Futures assembly, an add-on package for ASP.NET MVC 1.0 containing experimental features not yet baked into the core framework. Covers donut caching/substitution, rendering action methods inside views via RenderAction, web-forms-like server controls (TextBox, Repeater, etc.), extra HtmlHelper extension methods with lambda support, additional model binders (file upload, LINQ binary, byte array), new action/result filters (AJAX-only actions, SSL enforcement, content-type setting), and an experimental AsyncController for long-running asynchronous action methods. Includes setup instructions for referencing the assembly and Web.config changes.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://blog.maartenballiauw.be/posts/2009-04-02-back-to-the-future-exploring-aspnet-mvc-futures>

## Questions this post answers

### What is the ASP.NET MVC Futures assembly and what does it add to ASP.NET MVC 1.0?

It is a separate downloadable assembly from the CodePlex releases page containing experimental features not yet included in the core ASP.NET MVC 1.0 framework. It adds donut caching via an HtmlHelper Substitute method, RenderAction for rendering action methods inside views, web-forms-style controls like TextBox and Repeater, extra HtmlHelper extensions with lambda support, new model binders, additional action/result filters, and an experimental AsyncController for asynchronous action methods.

_daily.dev surfaces practical deep dives like this for developers experimenting with ASP.NET MVC extensions._

### How do you render one controller action inside the view of another action in ASP.NET MVC?

Using Html.RenderAction from within a view, available in the MVC Futures assembly. For example, Html.RenderAction("CurrentTime") calls the CurrentTime action method and renders its partial view inline, combining output from two action methods into a single HTTP response; a lambda overload like Html.RenderAction<HomeController>(c => c.CurrentTime()) is also supported.

_follow daily.dev for patterns like composing views from multiple controller actions in MVC._

### What is donut caching in ASP.NET MVC and how do you implement it?

Donut caching means most of a page is cached while specific regions are substituted with fresh, uncached content on every request. It is implemented by applying OutputCache to an action method and calling Html.Substitute(c => ...) in the view, which accepts an HttpContext and lets you inject real-time content, such as a current timestamp, into an otherwise cached page.

_daily.dev helps developers track techniques like donut caching for balancing performance and freshness._

## Similar posts on daily.dev

- [The .NET Tools Blog](https://daily.dev/posts/the-net-tools-blog-tdsv0g0uj) · JetBrains · 6 upvotes · 0 comments
- [htmxRazor v1.4.0: SSE Streaming, Multi-step Wizard, and Optimistic UI - Chris Woody Woodruff](https://daily.dev/posts/htmxrazor-v1-4-0-sse-streaming-multi-step-wizard-and-optimistic-ui---chris-woody-woodruff-djatrl3bc) · We Are .NET · 20 upvotes · 0 comments

---

Tags: [#c#](https://daily.dev/tags/c#)

[View this post on daily.dev](https://daily.dev/posts/back-to-the-future-exploring-asp-net-mvc-futures-pfyzyq0i6)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Back to the future! Exploring ASP.NET MVC Futures","url":"https://daily.dev/posts/back-to-the-future-exploring-asp-net-mvc-futures-pfyzyq0i6","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/back-to-the-future-exploring-asp-net-mvc-futures-pfyzyq0i6"},"datePublished":"2026-10-04T13:05:34.314Z","dateModified":"2026-10-04T13:16:38.946Z","description":"A tour of the ASP.NET MVC Futures assembly, an add-on package for ASP.NET MVC 1.0 containing experimental features not yet baked into the core framework....","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/cecbaf6e1c9203ea230b2c3bfbe8edda?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/cecbaf6e1c9203ea230b2c3bfbe8edda?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Maarten Balliauw","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Maarten Balliauw","logo":"https://media.daily.dev/image/upload/s--rOTg3VYO--/f_auto,q_auto/v1791119043/logos/maartenballiauw?_a=BAMAMicg0","url":"https://daily.dev/sources/maartenballiauw"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/back-to-the-future-exploring-asp-net-mvc-futures-pfyzyq0i6","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"c#","timeRequired":"PT7M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Maarten Balliauw","item":"https://daily.dev/sources/maartenballiauw"},{"@type":"ListItem","position":3,"name":"Back to the future! Exploring ASP.NET MVC Futures"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/back-to-the-future-exploring-asp-net-mvc-futures-pfyzyq0i6#faq","mainEntity":[{"@type":"Question","name":"What is the ASP.NET MVC Futures assembly and what does it add to ASP.NET MVC 1.0?","acceptedAnswer":{"@type":"Answer","text":"It is a separate downloadable assembly from the CodePlex releases page containing experimental features not yet included in the core ASP.NET MVC 1.0 framework. It adds donut caching via an HtmlHelper Substitute method, RenderAction for rendering action methods inside views, web-forms-style controls like TextBox and Repeater, extra HtmlHelper extensions with lambda support, new model binders, additional action/result filters, and an experimental AsyncController for asynchronous action methods. daily.dev surfaces practical deep dives like this for developers experimenting with ASP.NET MVC extensions."}},{"@type":"Question","name":"How do you render one controller action inside the view of another action in ASP.NET MVC?","acceptedAnswer":{"@type":"Answer","text":"Using Html.RenderAction from within a view, available in the MVC Futures assembly. For example, Html.RenderAction(\"CurrentTime\") calls the CurrentTime action method and renders its partial view inline, combining output from two action methods into a single HTTP response; a lambda overload like Html.RenderAction<HomeController>(c => c.CurrentTime()) is also supported. follow daily.dev for patterns like composing views from multiple controller actions in MVC."}},{"@type":"Question","name":"What is donut caching in ASP.NET MVC and how do you implement it?","acceptedAnswer":{"@type":"Answer","text":"Donut caching means most of a page is cached while specific regions are substituted with fresh, uncached content on every request. It is implemented by applying OutputCache to an action method and calling Html.Substitute(c => ...) in the view, which accepts an HttpContext and lets you inject real-time content, such as a current timestamp, into an otherwise cached page. daily.dev helps developers track techniques like donut caching for balancing performance and freshness."}}]}
```

