动态数据实体Web应用程序模板和Asp.Net Web窗体模板的组合

时间:2013-02-21 04:37:59

标签: asp.net webforms asp.net-membership asp.net-dynamic-data visual-studio-templates

我想使用Visual Studio 2012 For Web创建一个网站,它有一个数据库和一个生成的UI,如果我们使用模板项目就会生成:

动态数据实体Web应用程序

但我还希望有一个登录页面,例如模板项目提供的内容:

Asp.Net Web表单应用程序

我发现模板对于这些任务中的任何一个都很好,但是如果你想要它们两个都很糟糕。

如果我从动态数据实体Web应用程序模板开始,那么我只需很少的编码即可获得数据库方面的优秀页面 - 但我无法设法使登录代码正常工作(同样,我也不知道)我认为我应该编写该代码,因为它已经存在于Asp.Net Web Forms Application中。每当我尝试时,我都会陷入一个可怕的混乱中。我真的不想了解身份验证和会员资格以及Cookie,以及"它是如何做到的?"或任何那些东西。我想要的是.Net框架处理所有这些,并告诉我查看页面的人的用户名是什么。这就是全部。有一种方法可以使用Asp.Net Web窗体应用程序模板。

但是,如果我从Asp.Net Web窗体应用程序模板开始,那么登录的东西就可以开箱即用......但是后来我陷入了一个可怕的混乱,试图为数据库创建一个UI!但鉴于该代码已存在于动态数据实体Web应用程序模板中,因此不应该这样做。再说一遍,我真的不想了解它是如何做到的,我只想用它为我做这些事情,这样我就不必这样做了。我不想告诉它如何更新,删除等......我不必使用动态数据实体Web应用程序模板,但我无法登录东西。

无论如何,我用我认为非常简单的任务来撕掉我的大部分头发:使用Code First Entities方法创建一个使用简单数据库登录/注册的网站。我的经验是,如果你想拥有一个数据库但没有登录,那么你就是在笑。如果您想要登录但没有数据库用户界面,那么您就是在笑。如果你想要两者兼而有之,那么除非你是一位生活和呼吸这种东西的超级微软技术专家,否则前面会有很多痛苦......或者你知道"技巧" (可能存在于某个论坛的某个地方)。

无论如何,我的问题是,我在这里错过了什么?是否有一个包含大量其他模板的网站,其中包含将Web窗体(具有自动登录/成员控制)与动态数据实体Web应用程序相结合的模板,该应用程序可以很好地显示表格并允许编辑?我发现很难相信微软打算让我知道如何完成动态数据实体Web应用程序所做的所有工作以及Asp.Net Web Forms应用程序以获得这两种功能。

花了我一个星期的时间来弄清楚如何获得"启用 - 迁移"在Web窗体模板类型中工作......基本上每一个小步骤都是一场巨大的战斗,需要在论坛之后阅读论坛才能发现很少的"技巧"。但最后,我真正想要的是一个模板,它将动态数据实体Web应用程序功能(即数据驱动的网页)与Web窗体功能(即用户登录)相结合,并在Azure上发布。我觉得那很简单。但事实证明,这是一场噩梦,事实上我完全陷入困境。

更新

我刚刚花了半天的时间试图按照http://msdn.microsoft.com/en-us/library/ee923692(v=vs.100).aspx的建议开始工作。但它对我不起作用。它不应该那么复杂。它不应该要求修改这种常见的网站格式:具有UI和登录的数据库。

现在我又回到了几天前遇到的第一个问题,这个问题以某种方式消失了,但我不知道如何:

PM>启用的迁移 System.ArgumentException:参数不正确。 (HRESULT异常:0x80070057(E_INVALIDARG))

服务器堆栈跟踪:    在EnvDTE.Properties.Item(对象索引)    在System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md,Object [] args,Object server,Object []& outArgs)    在System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg)

在[0]处重新抛出异常:    在System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg)    在System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData,Int32 type)    在EnvDTE.Properties.Item(对象索引)    at System.Data.Entity.Migrations.Extensions.ProjectExtensions.GetPropertyValue [T](Project project,String propertyName)    在System.Data.Entity.Migrations.MigrationsDomainCommand.GetFacade(String configurationTypeName)    在System.Data.Entity.Migrations.EnableMigrationsCommand.FindContextToEnable(String contextTypeName)    在System.Data.Entity.Migrations.EnableMigrationsCommand。<> c_ DisplayClass2。< .ctor> b _0()    在System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action命令) 参数不正确。 (HRESULT异常:0x80070057(E_INVALIDARG))

此时我要放弃。我不得不放弃,因为经过一周的尝试,我可以设法在Azure上创建一个带有数据库和UI的网站,但是没有登录 Azure上的一个网站,只有登录但没有数据库用户界面。对于我来说,为我的每一个表创建一个网格视图,并手动连接RowChange,UpdateMethod,DeleteMethod等...(即不使用动态数据脚手架)将是荒谬的,因为脚手架存在(它只是除非我从一开始就使用该模板,否则很难让它工作,但如果我使用该模板,那么我就没有登录页面!)。无论如何,现在这个"参数不正确"错误再次出现,所以我绕圈子去了。

1 个答案:

答案 0 :(得分:0)

您可以使用ASP.NET动态数据模板在Visual Studio中创建动态数据网站。

在继续之前,您必须决定是否要创建网站项目或Web应用程序项目。有关更多信息,请参阅Web应用程序项目与Web站点项目。按照适当的步骤中的步骤操作。为了创建使用脚手架的动态数据Web应用程序,您遵循的大多数步骤对于Web站点项目和Web应用程序项目都是相同的。但是,根据您使用的项目类型,有几个步骤会有所不同。

创建动态数据网站项目

  1. 启动Visual Studio或Visual Web Developer。
  2. 文件菜单中,点击 NewWeb网站。 将显示新建网站对话框。
  3. 已安装的模板下的左窗格中,选择 Visual Basic Visual C#
  4. 在中央窗格中,选择以下选项之一:
  5. - 要使用LINQ to SQL模型,请选择 ASP.NET动态数据LINQ to SQL网站
    - 要使用ADO.NET实体框架模型,请选择 ASP.NET动态数据实体网站。

    有关详细信息,请参阅ASP.NET Dynamic Data Layer Customization.

    5.在 Web位置框中,选择文件系统,然后输入名称     您要保留网站页面的文件夹。

    例如,输入文件夹名称 C:\ WebSites \ DynamicData

    6.单击确定

    参考:Creating Dynamic Website

    除此之外,你还可以从中读取其他信息。我相信没有什么比编程更令人讨厌的了。如果你能想到它我相信你也可以做到。 :)