如何将数据脚手架添加到现有的ASP.NET网站?

时间:2009-04-22 14:00:23

标签: asp.net dynamic-data

我已经在动态数据中添加了我们现有的网站,并且只要将DynamicDataManager添加到页面并设置GridView来使用它就可以了。但是我想我想要启动并运行完整的脚手架功能,所以我不必为所有表编写所有布局。不幸的是我无法让它发挥作用。

我已经在Application_start()中添加了代码来注册数据上下文并设置路由。我已尝试使用“{table} /ListDetails.aspx”和“{table} / {action} .aspx”版本,但我只收到HTTP 404错误。我也将ScaffoldAllTables设置为true。

我在这里错过了一两步吗?

这是我的应用程序启动代码:

protected void Application_Start(Object sender, EventArgs e)
        {


            RegisterRoutes(RouteTable.Routes);

        }


public static void RegisterRoutes(RouteCollection routes)
        {
            MetaModel model = new MetaModel();


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


            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
            });
        }

4 个答案:

答案 0 :(得分:1)

我需要添加

<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, publicKeyToken=31BF3856AD364E35" /> 

到我的web.config的httmodules部分。

答案 1 :(得分:0)

您是否在global.asax

中添加了此内容
model.RegisterContext(typeof(AdventureWorksLT_DataModel.AdventureWorksLT_DataEntities), 
new ContextConfiguration() { ScaffoldAllTables = true });

http://msdn.microsoft.com/en-us/library/cc488469.aspx有一步一步的演练..如果你错过了任何一个。

答案 2 :(得分:0)

你能展示你的Application_start()代码吗?您使用的是哪个版本的IIS?

可以在Scott Hanselman的网站上找到将动态数据添加到现有网站的一个很好的解释:http://www.hanselman.com/blog/PlugInHybridsASPNETWebFormsAndASPMVCAndASPNETDynamicDataSideBySide.aspx

答案 3 :(得分:0)