Introduction
Today, in this article let's play around with one of the interesting and most useful concepts in C#.
Question: What is dynamic data web application?
In simple terms "It enables performing the CRUD operations with the help of pre-defined created dynamic templates".
Step 1: Create a new webform project:
Step 2: Add a new ADO.NET Data Entity Model item:
Step 3: The output of Global.asax.cs looks like this:
using System;
using System.ComponentModel.DataAnnotations;
using System.Web;
using System.Web.DynamicData;
using System.Web.Routing;
namespace DynamicDataApp
{
public class Global : System.Web.HttpApplication
{
private static MetaModel s_defaultModel = new MetaModel();
public static MetaModel DefaultModel
{
get{return s_defaultModel;
}
}
public static void RegisterRoutes(RouteCollection routes)
{
// IMPORTANT: DATA MODEL REGISTRATION // Uncomment this line to register an ADO.NET Entity Framework model for ASP.NET Dynamic Data.//
Set ScaffoldAllTables = true only if you are sure that you want all tables in the// data model to support a scaffold (i.e. templates) view.
To control scaffolding for// individual tables, create a partial class for the table and apply the//
[ScaffoldTable(true)] attribute to the partial class.//
Note: Make sure that you change "YourDataContextType" to the name of the data context// class in your application.
DefaultModel.RegisterContext(typeof(CompanyEntities), new ContextConfiguration()
{ ScaffoldAllTables = true });
// The following statement supports separate-page mode, where the List, Detail, Insert, and // Update tasks are performed by using separate pages.
To enable this mode, uncomment the following // route definition, and comment out the route definitions in the combined-page mode section that follows.
routes.Add(new DynamicDataRoute("{table}/{action}.aspx"){Constraints = new RouteValueDictionary(new {
action = "List|Details|Edit|Insert" }),Model = DefaultModel});
// The following statements support combined-page mode, where the List, Detail, Insert, and// Update tasks are performed by using the same page.
To enable this mode, uncomment the// following routes and comment out the route definition in the separate-page mode section above.//
routes.Add(new DynamicDataRoute("{table}/ListDetails.aspx")
{ Action = PageAction.List, ViewName = "ListDetails", Model = DefaultModel});
routes.Add(new DynamicDataRoute("{table}/ListDetails.aspx") { Action = PageAction.Details, ViewName = "ListDetails", Model = DefaultModel});
}
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
}
}
Step 4: The output of the application looks like this:
Step 5: The data inserted output of the application looks like this:
I hope this article is useful for you. I look forward for your comments and feedback. Thanks Vijay Prativadi