带有下拉列表的 ASP.NET MVC-5 CRUD 应用程序






4.84/5 (22投票s)
ASP.NET MVC 5 应用程序
引言
本教程将教你使用 Visual Studio 2013 构建 ASP.NET MVC 5 Web 应用程序的基础知识。我将通过简单的屏幕截图逐步展示操作。准备好开始这段旅程吧。
你需要了解 ASP.NET、SQL Server 2008 R2 和 Visual Studio 2013。
- M模型:代表应用程序数据的类,并使用验证逻辑来强制执行这些数据的业务规则。
- V视图:你的应用程序用来动态生成 HTML 响应的模板文件。
- C控制器:处理传入浏览器请求、检索模型数据,然后指定视图模板以返回响应到浏览器的类。
MVC 是如何工作的?
应用程序流程
现在创建项目
- 打开 Visual Studio 2013,选择新建项目
- 选择 ASP.NET Web 应用程序,并为项目命名为 MyMVCApp,然后点击确定。
- 然后选择 MVC,并点击确定按钮。
- 现在在模型上右键单击,添加,然后选择新建项
- 现在选择 ADO.NET Entity Data Model,输入名称“MyAppEDM”,然后点击添加按钮。
- 现在选择从数据库生成,然后点击下一步。
- 现在点击新建连接。
- 现在输入用户名和密码(如果你使用 SQL Server 身份验证),并选择你的数据库,例如 dbMYDAT,然后测试连接,并点击确定按钮。
- 现在点击保存实体连接设置,然后点击下一步。
- 现在选择你想要使用的表、视图、存储过程等,然后点击完成。
- 现在创建一个控制器,并命名为“StuInfoController”。在创建控制器之前,你需要构建应用程序。
对于上述错误,你需要重新构建应用程序。
- 现在在 RouteConfig 中,将默认控制器“Home”重命名为“StuInfo”控制器。
- 现在运行应用程序,你可能会看到以下屏幕。
- 现在你可以创建新的了。
代码
模型
public partial class stuInfo { [Required] public string ID { get; set; } [StringLength(20, ErrorMessage = "Max length 30 characters")] public string Name { get; set; } [Required] public string Dept { get; set; } [Required] public string Subject { get; set; } public virtual DeptInfo DeptInfo { get; set; } public virtual SubjectInfo SubjectInfo { get; set; } }
Web config
<connectionStrings> <add name="dbMYDATAEntities" connectionString="metadata=res://*/Models.MyAppEDM.csdl|res://*/Models.MyAppEDM.ssdl|res://*/Models.MyAppEDM.msl;provider=System.Data.SqlClient;provider connection string="data source=IT-WS08\SQLEXPRESS;initial catalog=dbMYDATA;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" /> </connectionStrings>
表脚本
Stuinfo
USE [dbMYDATA] GO /****** Object: Table [dbo].[stuInfo] Script Date: 08/27/2014 12:06:16 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[stuInfo]( [ID] [nchar](10) NOT NULL, [Name] [nvarchar](max) NULL, [Dept] [nchar](10) NULL, [Subject] [nchar](10) NULL, CONSTRAINT [PK_stuInfo] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO ALTER TABLE [dbo].[stuInfo] WITH CHECK ADD CONSTRAINT [FK_stuInfo_DeptInfo] FOREIGN KEY([Dept]) REFERENCES [dbo].[DeptInfo] ([ID]) GO ALTER TABLE [dbo].[stuInfo] CHECK CONSTRAINT [FK_stuInfo_DeptInfo] GO ALTER TABLE [dbo].[stuInfo] WITH CHECK ADD CONSTRAINT [FK_stuInfo_SubjectInfo] FOREIGN KEY([Subject]) REFERENCES [dbo].[SubjectInfo] ([Id]) GO ALTER TABLE [dbo].[stuInfo] CHECK CONSTRAINT [FK_stuInfo_SubjectInfo] GO
DeptInfo
USE [dbMYDATA] GO /****** Object: Table [dbo].[DeptInfo] Script Date: 08/27/2014 12:07:15 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[DeptInfo]( [ID] [nchar](10) NOT NULL, [Dept] [nvarchar](50) NULL, CONSTRAINT [PK_DeptInfo] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO
SubjectInfo
USE [dbMYDATA] GO /****** Object: Table [dbo].[SubjectInfo] Script Date: 08/27/2014 12:07:59 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[SubjectInfo]( [Id] [nchar](10) NOT NULL, [Subject] [nvarchar](max) NULL, CONSTRAINT [PK_SubjectInfo] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO
非常感谢你的耐心。
参考文献
http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
电子书:Programming ASP.NET MVC 5 A Problem Solution Approach