What Is it?

MvcImproved tries to add some things that are missing in MVC, including but not limited to:

Benefits

Installation Instructions

Usage

Given the following model:
namespace MvcImprovedTest.Models
{
	public class ProductExtra
	{
		public string ExtraInfo1;
		public string ExtraInfo2;
	}

	public class Product
	{
		public long ID;
		public string Name;
		public List<ProductExtra> Extra;
	}
}

We can define an ASPX page as follows:
<%@ Page Language="C#" Inherits="MvcImproved.Generic.ViewPage" ModelType="MvcImprovedTest.Models.Product" MasterPageFile="~/Views/Shared/Site.Master" %>

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">

<h2>Simple Product Test 2 - Using ModelType instead of generic declaration</h2>

	<mvcg:Literal runat="server" ValueMember="Name" />

	<mvcg:Repeater runat="server" ValueMember="Extra">
		<ItemTemplate>
			<span>Info 1: <mvcg:Literal runat="server" ValueMember="ExtraInfo1" /></span>
			<span>Info 2: <mvcg:Literal runat="server" ValueMember="ExtraInfo2" /></span>
		</ItemTemplate>
	</mvcg:Repeater>

</asp:Content>

Which will give us the following Intellisense:
Intellisense Sample

Designer Mode

One of the greatest advantagtes to using controls instead of <% %> tags is their visibility in design mode.
Design Mode Sample

More Samples

Write Your Own Type-Safe Control

Future Work

Currently, only a handful of controls are implemented as generic type-safe controls. The most important part, however (parsing of generic controls) is complete.

A list of TODO's:
Because of ASP.NET's poor and buggy implementation of the ControlBuilder classes, some of the code is quite hacky. Hopefully in the near future there will be better support for custom page and control builders, and better support for generics.

Your contribution is requested and welcomed!